1
這是一個簡單的問題。我在SQL Server中的兩個語句:爲什麼在SQL Server中將字符串強制轉換爲GUID時會出現錯誤?
Case 1) select cast('d8b673a9-816c-4f45-b446-158b3e65fb45' as uniqueidentifier)
**Result in this case:**
D8B673A9-816C-4F45-B446-158B3E65FB45
Case 2) select cast('g448d9e5-1499-25dc-er45-254717c234g8' as uniqueidentifier)
**Result in this case:**
Conversion failed when converting from a character string to uniqueidentifier.
正如你可以看到有明顯兩個GUID的沒有什麼區別..
顯然不是,除了第二個包含'g'和'r',它們不是有效的十六進制數字,所以根本不是一個GUID,而是某個人在實驗室炮製的一些奇怪的東西。毫無疑問,有着邪惡的意圖。 –
Uniqueindentifier只能包含十六進制值,這意味着AF和0-9 – Hackerman
除了我以前的評論,所有的開玩笑都請注意,[GUID](https://en.wikipedia.org/wiki/Globally_unique_identifier)是一個集合以特定方式生成的128位,以確保它們是唯一的。您可以*不*通過串聯字母和數字的任何舊組合來創建有效的GUID,即使它們碰巧都是十六進制的。所以除非你通過試驗獲得第二個GUID類型的字符串,否則不要使用生成中生成的任何算法。在SQL中,僅使用「NEWID()」或「NEWSEQUENTIALID()」。 –