将字符串转换为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类型也比较少,如果不是遇到这个报错我也是不知道这个类型的。
"起初的我们,在一起做任何无聊的小事都觉得趣味盎然,就像一颗被投入水杯的泡腾片,咕噜咕噜兴奋地冒着小泡泡。"
你要去做一个大人,不要回头,不要难过。