T-SQL结果空间不足,无法将uniqueidentifier值转换为char

时间:2018-10-11 09:23:07

标签: sql-server tsql type-conversion uniqueidentifier

如何解决此错误?

代码

declare @guid uniqueidentifier = '4164980A-EFD0-4C60-A18A-253465E00E9C'

print 'GUID ='+cast(@guid as varchar)

结果

  

8170消息,状态16,状态2,第2行
  结果空间不足,无法将uniqueidentifier值转换为char。

1 个答案:

答案 0 :(得分:1)

您需要为varchar变量指定一个字符串长度,否则,根据Microsoft文档here,默认长度将为30(该长度不足以包含您的值):

  

varchar [(n | max)]可变长度的非Unicode字符串数据。 n定义字符串长度,可以是1到8,000之间的值。

     

使用CAST和CONVERT函数时未指定n时,默认长度为30。

因此,以下方法可以解决您的问题:

declare @guid uniqueidentifier = '4164980A-EFD0-4C60-A18A-253465E00E9C'
print 'GUID ='+cast(@guid as varchar(36))