Почему этот SQL не БРОСИТ работу? [закрытый]

10
задан Kev 20 July 2016 в 08:51
поделиться

4 ответа

Этот тестовый сценарий работает нормально для меня.... Я могу только предположить, что, возможно, ваш TaskId не является NVARCHAR(50), как вы говорите? Попробуйте использовать sp_columns, чтобы проверить...

CREATE Table #TaskData (TaskId NVARCHAR(50))
INSERT INTO #TaskData (TaskId) SELECT CONVERT(NVARCHAR(50), NEWID())
UPDATE #TaskData SET TaskId = CONVERT(NVARCHAR(50), NEWID())
DROP TABLE #TaskData
13
ответ дан 3 December 2019 в 14:33
поделиться

используйте тип данных varchar, nvarchar требует двойного размера

0
ответ дан 3 December 2019 в 14:33
поделиться

Пожалуйста, попробуйте следующее приведение:

CAST(NEWID() AS varchar(255))
3
ответ дан 3 December 2019 в 14:33
поделиться

Когда вы не указываете размер вашего varchar / nvarchar во время приведения или преобразования, по умолчанию он равен 30 символам. Вам нужно 36 символов, чтобы преобразовать guid в строку. Вот почему вы получаете ошибку.

Любой из них будет работать:

Select Cast(NewId() as nvarchar(36)), CONVERT(nvarchar(36), NEWID())
17
ответ дан 3 December 2019 в 14:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: