如何让 EXEC 后面的SQL语句字符串长度能超过8000个字符?
EXECUTE,按照联机手册上的说法
[N]'tsql_string'
是一个常量,tsql_string 可以是 nvarchar 或 varchar 数据类型。如果包含 N,则该字符串将解释为 nvarchar 数据类型,最大值为服务器的可用内存。如果字符串长度超过 4,000 个字符,则把多个局部变量串联起来用于 EXECUTE 字符串。
也就是说如果我的SQL语句(varchar类型)超过8000个字符的话,我可以采用拼凑:
exec(@str1+@str2)
是这个意思吧?
但是我在实际使用时确不行,我就是采用:
EXEC 'str1' + 'str2' + 'str3' + ... + 'strn'
运行报错,结果我改成:
PRINT 'str1' + 'str2' + 'str3' + ... + 'strn'
发现,输出的语句是截取了的,并不是我的完整的SQL语句(刚好是我的SQL语句的前8000个字符),所以这样当然会报错。
请问我这个该怎么办呀?我这是一个动态建存储过程的语句,语句代码肯定超过8000个字符了,我该怎么办?谁能帮帮我呀?
问题解决了我可以另外加分的!!!
谢谢!!!