exec('alter table #Main add ' + @sql_new ' + 'float')不过是临时表的话,上面的语句是不行的,要改为固定的表.exec('alter table Main add ' + @sql_new ' + 'float')

解决方案 »

  1.   

    alter table #Main add @sql_new float   ==>exec('alter table #main add '+@sql_new+' float')
      

  2.   

    dawugui 
    潇洒老乌龟 
    exec( 'alter table #Main add  ' + @sql_new  ' +  'float ') 不过是临时表的话,上面的语句是不行的,要改为固定的表. exec( 'alter table Main add  ' + @sql_new  ' +  'float ') 
     
    ----------------------------------------------------------------
    上次學到一招,原來這樣是可以的,我本來也以為不行
     
      

  3.   

    create table #t (id int)alter table #t add c1 intdeclare @c varchar(10)
    set @c='c2'
    exec('alter table #t add '+@c+' int')select * from #t
    /*
    id          c1          c2          
    ----------- ----------- ----------- 
    */drop table #t
      

  4.   

    playwarcraft 的方法是可以的
    但我如果加个循环,改成如下的样子说语法错了
    create table #t (id int) declare @a int 
    declare @b varchar(50)
    set @a=1while(@a<6)
    begin
    set @b='000'+@a
    exec('alter table #t add  ' + @b+ ' int ') 
    set @a=@a+1
    end
    select * from #t 
    drop table #t
      

  5.   

    哦,可以了,改成@b='xxx'+@a 就好了,是格式的问题,谢谢