2012-03-26 68 views
1

我有一个包含NVARCHAR列的表,其中可能包含GUID或字符串。这是一个遗留表格,所以在这个时候我无法改变。检查nvarchar列中的Guid值

我需要拿起带有GUID的记录。有什么建议么?截至目前,我正在使用类似下面的内容。是否应该将UDF中类似运算符之后的部分作为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]' 
+1

稍微好一点的方法是使用'[0-9a-f]'或'[0-9A-F]'而不是'[0-9a-fA-F]',如果你的'Column1'使用'CI'整理。 – 2012-03-26 06:47:07

回答

2

您可以创建一个自定义函数来尝试验证数据并检测它。我发现了一些东西在这里为TSQL:

http://ask.sqlservercentral.com/questions/23114/best-way-to-check-that-a-stringvarchar-guid-is-val.html

更新:

检查marc_s的太回答这里:

How to check if a string is a uniqueidentifier?

+0

我知道使这个UDF的方法。但是,我不确定相同的性能影响。我会在我的情况下测量相同的。只是在这里寻找更好的方法。谢谢你的时间。 – 2012-03-26 04:28:55