我有一个包含NVARCHAR
列的表,可以包含GUID或字符串。这是一张遗留表,所以我不能在这个时间点改变。
我需要使用GUID获取记录。有什么建议?我现在正在使用类似下面的东西。如果将以下查询中的like运算符之后的部分设为UDF会影响性能还是有更好的方法?
SELECT *
FROM Table1
WHERE Column1 LIKE '[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]-[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]'
答案 0 :(得分:2)
您可以创建一个自定义函数,尝试验证数据并检测它。我在这里找到了一些关于tsql的东西:
更新
在这里检查marc_s的答案:
答案 1 :(得分:1)
您可以创建sql clr function并致电Guid.TryParse。