如何让 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个字符了,我该怎么办?谁能帮帮我呀?   
 问题解决了我可以另外加分的!!! 
 谢谢!!!
------解决方案--------------------帮你顶
------解决方案--------------------也就是说如果我的SQL语句(varchar类型)超过8000个字符的话,我可以采用拼凑: 
 exec(@str1+@str2) 
 是这个意思吧?     
 但是我在实际使用时确不行,我就是采用: 
 EXEC  'str1 ' +  'str2 ' +  'str3 ' + ... +  'strn ' 
 ---------------------------------------------------   
 LZ 好像不是这样写的吧,()一定要加上,   
 运行报错,不知道是什么错误,如果EXEC 里面带有多个GO是不行的     
 另外用 PRINT 一次最多就只能打印出8000个字符,不管怎么写都没用
------解决方案--------------------replace,left,right,substring等字符串函数,不能直接用在EXEC里面。