T-SQL Недостаточно места в результатах для преобразования значения uniqueidentifier в char - PullRequest
0 голосов
/ 11 октября 2018

Как я могу исправить эту ошибку?

Код

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

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

Результат

Сообщение 8170, Уровень 16, Состояние 2, Строка 2
Недостаточно места в результатах для преобразования значения uniqueidentifier в char.

1 Ответ

0 голосов
/ 11 октября 2018

Вам необходимо указать длину строки для переменной varchar, в противном случае длина по умолчанию будет 30 (что недостаточно для хранения вашего значения), согласно документации Microsoft здесь :

varchar [(n | max)] Строковые данные переменной длины, отличные от Unicode.n определяет длину строки и может принимать значение от 1 до 8 000.

Если n не указано при использовании функций CAST и CONVERT, длина по умолчанию составляет 30.

Таким образом, следующее должно решить вашу проблему:

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