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('')
Чтобы увидеть не усеченное содержимое.