可以这样:
declare @names varchar(4000)
declare @sql varchar(5000)
set @names=''
select @names=@names+','+rtrim(name) +' int' from t1  --这里的int可遗体还成你要的数据类型。
set @sql='create table t2(id int'+@names +')'
exec (@sql)

解决方案 »

  1.   

    只要肯找总会有的。
    我的一个同学遇到过这样一个问题sql server有这样一个扩展存储过程,
    他用了铁棒磨针的劲头把这个东东找到了,可惜我不记得了,去找吧,
    找到了也告诉我一声。
      

  2.   

    //按日期+地区+店名汇总,按日期+地区汇总,再按日期汇总;
    select rq,dqdm as dqdm,ddm as ddm,sum(je) as je into #hgjk from hgjk group by rq,dqdm,ddm with rollupdrop table #cszhmc//删除需要待建的表;
    //找出关键列
    select msdm into #cszhmc from cszhmc group by msdm//定义循环初始日期
    declare @dd datetime
    set @dd='2002.06.01'declare @sql varchar(1000)//开始创建6月份列
    while @dd<'2002.07.01'
    begin
      declare @ddstr char(2)
      set @ddstr=datename(dd,@dd)
      //增加新列  
      set @sql='alter table #cszhmc add['+@ddstr+'] money' 
      exec (@sql)
      //更新新建列
      set @sql='update #cszhmc set [' +@ddstr+ ']=b.[' +@ddstr+ '] from #cszhmc a,(select ddm,je as [' +@ddstr+ '] from #hgjk where rq='''+convert(varchar(100),@dd,120)+''') b where a.msdm=b.ddm'
      exec (@sql)
      select @dd=@dd+1
    end
    select * from #cszhmc
    和你要求有点类似,把它改改就可以了