sp_executeSQL и Statment с более чем 2000 символов - PullRequest
2 голосов
/ 16 сентября 2011

Я использую динамический SQL, и мне нужно выполнить длинный запрос SQL. Сначала я объявляю @var с запросом как nvarchar (4000), но мой запрос длиннее 4000 символов.Я пытаюсь перейти на nvarchar (8000), но получаю Исключение, которое не может быть длиннее 4000 символов.

Наконец, я объявляю var как varchar (8000) и нет ошибок, но когда я собираюсь выполнить exe sp_executeSQLповышение и ошибка, что sp_executeSQL ожидает ntext / nchar / nvarchar.

Как я могу выполнить более длинный Sql Query с sp_executeSQL?Спасибо!

Я использую Sql Server Express 2005.

1 Ответ

4 голосов
/ 16 сентября 2011

Начиная с 2005 года, вы можете использовать declare @var nvarchar(max) для до 1 миллиарда символов.

Вы найдете, что операторы PRINT не работают для просмотра содержимого переменных для очень длинных строк, поэтому вы можете сделать

SELECT @var AS [processing-instruction(x)] FOR XML PATH('')

Для просмотра не усеченного содержимого.

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