为什么在SQL Server中将字符串转换为GUID时会出错?

时间:2016-11-08 18:26:21

标签: sql sql-server guid

这是一个简单的问题..我在sql server中有两个语句:

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之间显然没有区别..

1 个答案:

答案 0 :(得分:2)

GUID不应包含'r''g',只能包含十六进制数字,这就是您的第二个字符串不会被投射的原因。

请参阅此处的信息:

https://en.wikipedia.org/wiki/Hexadecimal

  

在数学和计算中,十六进制(也是基数16或十六进制)是一个位数数字系统,其基数或基数为16.它使用十六个不同的符号,最常用符号0-9表示零到零的值九,A,B,C,D,E,F(或者a,b,c,d,e,f)表示十到十五的值。