将字符串转换为uniqueidentifier时失败

在日常使用SQL Server的时候会出现【将字符串转换为uniqueidentifier时失败】这个报错,通常是在使用newid()内置函数的时候可以将生成的值转为字符串,但是反过来则不行,即一些字符串类型的值无法转换为uniqueidentifier类型的值。

是的没错,newid()函数是SQL Server内置的一个生成随机id的函数,返回的值类型是uniqueidentifier,并不是字符串。

简单还原下场景:

select '' as id
union all
select newid() as id

解决的方法,只需要将newid()函数生成的值强制转化为字符串即可。

select '' as id
union all
select cast(newid() as varchar(32))

而事实上在业务场景中使用到uniqueidentifier类型也比较少,如果不是遇到这个报错我也是不知道这个类型的。

"起初的我们,在一起做任何无聊的小事都觉得趣味盎然,就像一颗被投入水杯的泡腾片,咕噜咕噜兴奋地冒着小泡泡。"

原文地址:https://www.cnblogs.com/yanggb/p/13588146.html