Выполнение sp_executesql + превышение длины строки

RAndrey
Дата: 14.01.2009 17:23:36
Добрый день!

Возникла задача выполнить sp_executesql @querystr (@querystr формируется динамически в цикле).

В результате выполнения цикла иногда длина @querystr может получиться строка более 4000 символов, т.е. превысить максимальное значение для nvarchar. Когда превышает, формируется некорректный текст запроса.

Пробовал разбивать @querystr на две, но sp_executesql @s1 + @s2 не работает.
Локальную переменную ntext тоже не объявишь...

Возможно, кто-то подскажет, как можно выйти из ситуации?
iap
Дата: 14.01.2009 17:28:12
В SQL2005 - NVARCHAR(MAX)

А зачем вообще sp_executesql ? Чем не нравится EXEC(@SQL_Str1+@SQL_Str2+...+)?
RAndrey
Дата: 14.01.2009 17:42:17
iap,

пишу
declare @querystr nvarchar(max)
в ответ получаю
Line 1: Incorrect syntax near 'max'.
el Pueblo
Дата: 14.01.2009 17:46:00
А у Вас точно SQL2005?
Senya_L
Дата: 14.01.2009 17:50:22
RAndrey
iap,

пишу
declare @querystr nvarchar(max)
в ответ получаю
Line 1: Incorrect syntax near 'max'.
Какая версия сервера? В 2005-м все нормально.
RAndrey
Дата: 15.01.2009 08:05:30
el Pueblo
А у Вас точно SQL2005?


SQL 2005, делал апгрейд с 2000. Потом менял ручками compatibility level на 9.
RAndrey
Дата: 15.01.2009 09:21:37
RAndrey
el Pueblo
А у Вас точно SQL2005?


SQL 2005, делал апгрейд с 2000. Потом менял ручками compatibility level на 9.


оопс, действительно, 2000. Перепутал сервера, извиняюсь.