存贮过程中建一个临时表,如何检测是否存在某个字段名呢?
我的目的是,将一个表汇总后横向展开,所以在临时表中,加个很多列,但是我必须要检测一下,我的列是不是全了。
因为一些编码经常会加,但是我的程序就要同步更改。如,此时机台号,产量是字段名
机台号,产量
aa,100
bb,100
aa,100
cc,120我要得到下列表,此时aa,bb,cc变成字段名了。
aa,bb,cc
200,100,120我要检测的就是,临时表的列中,是否包含了全部的机台号,
如果原始表中有:
dd,500
将我的临时表中,要同步增加一个dd的字段。
问题是,我的代码中,如何检测出,临时表的列名全不全呢?

解决方案 »

  1.   

    if object_id('tempdb..#')is not null drop table #
    go
    create table #(a int ,b int ,c int)
    select name
    from tempdb..syscolumns
    where object_id('tempdb..#')=ID
    /*
    name
    a
    b
    c
    */
      

  2.   

    drop table #testcreate table #test(机台号 varchar(100),产量 int)
    insert #test select 'aa',100
    insert #test select 'bb',100
    insert #test select 'aa',100
    insert #test select 'cc',120declare @sql varchar(500)
    select @sql=isnull(@sql+',','')+机台号 from(select 机台号 from #test group by 机台号) a order by 机台号
    exec( 'select '+@sql+
      ' from #test '+
      'pivot (sum(产量) for 机台号 in('+@sql+')) pvt'
     )

             aa          bb          cc
    ----------- ----------- -----------
            200         100         120(1 行受影响)可以动态显示