動態SQL字符長度超過8000,我記得SQL SERVER 2005中用SP_EXECUTESQL打破了這個限制。
平常用動態SQL,可能都會用EXEC(),但是有限制,就是8000字符串長度。自從SQL SERVER 2005起,在 INSIDE SQLSERVER 2005 T-SQL PROGRAMMING中提到,使用SP_EXECUTESQL()和NVARCHAR(MAX)可以超越8000個字符的限制。因為 SP_EXECUTESQL()必須使用NVARCHAR,NCHAR,NTEXT作為參數,所以SP_EXECUTESQL()的最長字符限制就是 4000。
我們看一個NVARCHAR(4000)的例子:
如何打破這個限制,我們再看(將SQL字符變量類型設置為NVARCHAR(MAX)):
可以看到,成功執行了SQL字符長度為9999的動態SQL。。
看一個SQL字符超過100000的例子:
字符串長度巨大,我只能將結果保存到RPT文件,可惜的是,我的機器(2.5內存+32位WIN2003)還是不能顯示,肯定是資源不夠用