将字符串转换为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类型也比较少,如果不是遇到这个报错我也是不知道这个类型的。

 

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM