sp_executeSQL和超过2000个字符的Statement

时间:2011-09-16 11:20:00

标签: sql-server procedures sp-executesql

我正在使用动态SQL,我需要执行一个长SQL查询,首先我将@var与查询声明为nvarchar(4000),但我的查询超过4000个字符。 我尝试更改为nvarchar(8000),但引发的异常不能超过4000个字符。

最后我声明var为varchar(8000)并且没有错误ocurrs,但是当我要执行sp_executeSQL时 sp_executeSQL期望ntext / nchar / nvarchar。

的引发和错误

如何用sp_executeSQL执行更长的Sql查询? Thnks!

我正在使用Sql Server Express 2005。

1 个答案:

答案 0 :(得分:4)

在2005年,你可以使用declare @var nvarchar(max)最多10亿个字符。

你会发现使用PRINT语句不能查看非常长的字符串的变量内容,所以你可以这样做

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

查看未截断的内容。