我试图更新客户数据库中的大量数据,但遇到了一个问题。我需要更新的列(ntext)包含常规文本/注释和guid的混合。
我只需要更新不包含GUID的单元格。
在SQL中搜索确定某些文本是否为uniqueidentifier/guid的方法提供了多种解决方案,如som-regex,但由于某种原因,它没有从select语句中删除guid的所有条目。(我在这里尝试了一些解决方案:如何检查字符串是否是唯一标识符?)
有人能告诉我如何删除ntext列中的各种类似指南的条目吗?
任何帮助都将不胜感激。
编辑:
正确删除guid的示例:
4cfb5539-1656-4447-87f7-ea7c4ea94e96
guid仍在列表中的示例:
f5f284a0-c1c5-4c71-95b6-1eaa3ed38222
它们的长度相同,我没有看到任何隐藏的字符或空格(试图修剪没有差异)等
编辑2:我使用的SQL语句:从表中选择*其中VALUE类似REPLACE(替换("00000000-0000-0000-000000000000","0","[0-9a-fA-F]'),",")
编辑3:作为第一步删除任何空白的另一条语句
从表中选择*其中REPLACE(转换(nvarchar(max),VALUE),'','')与REPLACE("00000000-0000-0000-0000-00000000","0","[0-9a-fA-F]')
WHERE column like '%-%-%-%-%'
此筛选条件将查找"column"列中具有guid的所有行。
您也可以使用PATINDEX
来做一些更复杂的事情