在日常使用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類型也比較少,如果不是遇到這個報錯我也是不知道這個類型的。
"起初的我們,在一起做任何無聊的小事都覺得趣味盎然,就像一顆被投入水杯的泡騰片,咕嚕咕嚕興奮地冒着小泡泡。"