sp_executeSQL и Statment с более чем 2000 символов

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

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

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

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

1 ответ

Решение

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

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

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

Чтобы увидеть не усеченное содержимое.

Другие вопросы по тегам