动态生成的几千条SQL语句,并且已经把它们存放在临时表的某个字段里了,接下来要把这些语句都执行了,请问怎么做最高效?
把它们倒进文件里BCP?或者exec SQL1+SQL2+SQL3....?或者别的方法?

解决方案 »

  1.   

    declare @str varchar(8000)
    set @str=''
    select @str=@str+'exec('+字段名 +')'+char(10) from 表名
    exec(@str)
      

  2.   

    declare @str varchar(8000)
    set @str=''
    select @str=@str+'exec('''+r1 +''')'+char(10) from table11
    exec(@str)
      

  3.   


    declare @s   varchar(8000)
    declare @sql varchar(8000)
    declare @i int
    select @s = @s  + col + '|'
    from #
    set @i = 1
    while @i <> 0
         begin 
    select @sql = substring( @s , i  , charindex(@s , @i,  '|') - 1 )
    exec(@sql)
    set  @i = charindex(@s , @i,  '|')  
            if   @i <> 0 set @i = @i + 1
         end