2012-03-26 33 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