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()”。 –