根据用户的指定的列数,动态创建含有指定列数的数据表
比如:用户指定列为N列,创建一个含有N(1,2,...n)列的数据表

解决方案 »

  1.   

    declare @sql nvarchar(max),@cols int
    select @cols=20;--用户定义列数
    select @sql='create table t(';
    if object_id('tempdb..#Inc') is not null drop table #Inc
    select Id=convert(int,1) into #Inc from sysobjects where 1=2;
    declare @sql2 nvarchar(max);
    select @sql2='
    insert into #Inc
    select top '+convert(varchar(20),@cols)+' row_number() over(order by o.id)
    from sysobjects o,sysobjects o1'
    exec(@sql2)
    select @sql=@sql+'col'+convert(varchar(10),Id)+' nvarchar(20) null,' from #Inc
    select @sql=substring(@sql,1,len(@sql)-1)
    select @sql=@sql+')'
    exec(@sql)
    select * from t
    drop table t
      

  2.   

    在使用时候能不能将表中的列转换成行?我想用Gridview控件绑定每列的数据集