简单举个例子
Declare @sql1 nvarchar(4000)
Declare @sql2 nvarchar(4000)
Declare @sql3 nvarchar(4000)Set @sql1='......'
Set @sql2='......'
Set @sql3='......'exec sp_executesql @sql1+@sql2+@sql3这样的语句通不过,请大家分析一下

解决方案 »

  1.   

    --try
    Declare @sql1 nvarchar(4000)
    Declare @sql2 nvarchar(4000)
    Declare @sql3 nvarchar(4000)
    Declare @s nvarchar(4000)
    set @s=''
    Set @sql1='.......'
    Set @sql2='.......'
    Set @sql3='.......'
    set @s=@s+'select '''+@sql1+@sql2+@sql3+''''
    exec sp_executesql @s,N'@s varchar(4000) output',@s output
    select @s--结果
    select '.....................'(所影响的行数为 1 行)
      

  2.   

    拜托,就是因为每条SQL语句的字数超过了4000,才会有这个问题的,所以你的方法,那个@s怎么会存得下呢?