Прежде всего - я не вижу такого поведения, о котором вы сообщаете. Как и почему вы думаете, что ваш столбец усекается до 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'')
Как я уже сказал - в моих тестах мне не нужно было этого делать - но, возможно, это работает в вашем случае?