Строка SQL Server усекается - PullRequest
1 голос
/ 04 января 2012

У меня есть столбец (col1) с nvarchar(max).

Я пытаюсь сделать

DECLARE @my_string NVARCHAR(max)
set @my_string = N'test'

UPDATE dbo.tab1 
SET col1 = @my_string + ISNULL(col1, N'')

не повезло, я понятия не имею, почему это происходит.@ marc_s

Строковое значение в col1 усекается после 250 символов.Это происходит как в SQL Server 2005, так и в 2008 году.

Ответы [ 3 ]

3 голосов
/ 04 января 2012

Прежде всего - я не вижу такого поведения, о котором вы сообщаете. Как и почему вы думаете, что ваш столбец усекается до 250 символов? Используете ли вы инструмент для проверки данных, которые могут усекать вывод ??

Вы можете проверить длину столбца:

SELECT col1, LEN(col1) FROM dbo.tab1

Это действительно только 250 символов в длину ???

Также: вы смешиваете VARCHAR@my_string) и NVARCHAR (col1), что может привести к грязным результатам. Избегайте этого!

Далее: если вы хотите NVARCHAR(MAX), вам нужно привести другие строки в этот формат.

Попробуйте это:

DECLARE @my_string NVARCHAR(200)
set @my_string = N'test'

UPDATE dbo.tab1 
SET col1 = CAST(@my_string AS NVARCHAR(MAX)) + ISNULL(col1, N'')

Как я уже сказал - в моих тестах мне не нужно было этого делать - но, возможно, это работает в вашем случае?

2 голосов
/ 07 ноября 2012

Перейти в меню - Запрос -> Параметры запроса -> Результаты -> Текст

Имеется опция Maximun number of characters displayed in each column, а для моей по умолчанию установлено значение 256.

Как только я установил это на 1000, проблема была исправлена.

0 голосов
/ 04 января 2012

Тестируете ли вы в SSMS? Если это так, отметьте опции Query Results > SQL Server > Results to Grid - Maximum characters retrieved > Non XML data. Есть ли значение 250 или подобное?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...