0
没有破折号无法更新的唯一标识符字段如何更新从SQL Server nvarchar的唯一标识符(GUID)(无破折号GUID)
update a
set GUID = replace(b.guid,'-','')
from table1 a
join table2 b on a.ID=b.ID
我得到这个错误:
Msg 8169, Level 16, State 2, Line 26
Conversion failed when converting from a character string to uniqueidentifier.
的GUID在表1必须在 “无破折号格式”
e1336903e4d04d2a88ad23ed87ddfff0
的GUID在tabl2是
E1336903-E4D0-4D2A-88AD-23ED87DDFFF0
我试图铸造varchar(36)
和其他变化同样的错误
谢谢!
让我们来看看,如果这是正确的。表2中的字段是唯一标识符。 Table1中的字段是一个varchar(40)。您想要获取uniqueidentifier,将其转换为varchar,删除破折号,然后将其保存在Table1中。为此,需要在使用REPLACE()之前将GUID CAST/CONVERT转换为varchar。 **注意**如果您尝试将转换的GUID存储到Table1中的uniqueidentifier字段中 - 则不能这样做。 uniqueidentifier是一个数字值,而不是字符串。 –
'如果您试图将转换后的GUID存储到Table1中的uniqueidentifier字段中 - 您无法这么做'基本上这一点。如果你想去掉破折号,你的table1中的“GUID”需要是某种字符类型(例如char(32))。 – ZLK
每个表中的两个字段都是uniqueidentifier数据类型。有没有反正保存它的表格格式 –