可以这样:
declare  @insertSql  varchar(100)  
declare  @insertSql1  varchar(4000)  
declare  @insertSql2  varchar(4000)  
  
set  @insertSql='
  create  table  #temp2  '
set  @insertSql1='
  insert  into  #temp2  values('''+REPLACE(@var,',',''') '
set  @insertSql2='
insert  into  #temp2  values(''')+''')'
exec  (@insertSql+@insertSql1+@insertSql2)  或者:exec ('
  create  table  #temp2  
  insert  into  #temp2  values('''+REPLACE(@var,',',''')insert  into  #temp2  values(''')+''')'
 )
 
  

解决方案 »

  1.   

    可以拆分成几个varchar再窜起来EXEC
      

  2.   

    下一段从联机帮助拷贝:使用带字符串的 EXECUTE 命令使用字符串串联运算符 (+) 为动态执行创建长字符串。每个字符串表达式可以是 Unicode 与 non-Unicode 数据类型的混合。尽管每个 [N] 'tsql_string' 或 @string_variable 不得超过 8,000 个字节,SQL Server 语法分析器中对这种串联只进行逻辑处理而不占用物理内存。例如,该语句决不会生成长 16,000 个串联起来的字符串:EXEC('name_of_8000_char_string' + 'another_name_of_8000_char_string')