tempdb..syscolumns中查出所有字段
declare @str=varchar(8000)
set @str='select '
select @str=@str+name +',' from tempdb..syscolumns where id =object_id(tempdb..#temp)
set @str=left(@str,len(@str)-1)+' from #临时表'
exec(@str)

解决方案 »

  1.   

    嘿嘿,先在查询分析器里面select *,不就知道都有什么字段了么。
      

  2.   

    更正一下:
    tempdb..syscolumns中查出所有字段
    如果不是临时表,把表名前的串"tempdb.."去掉declare @str=varchar(8000)
    set @str='select '
    select @str=@str+name +',' from tempdb..syscolumns where id =object_id('tempdb..#temp')
    set @str=left(@str,len(@str)-1)+' from #临时表'
    exec(@str)
      

  3.   

    谢谢 CrazyFor(蚂蚁)
    我要用一条select语句表示出来,也就是说用
    select * from #temp
    但是id不显示出来
      

  4.   

    把蚂蚁的改一下,呵呵,别见怪
    假设你不要的字段为A,
    declare @str varchar(8000)
    set @str='select '
    select @str=@str+name +',' from syscolumns where id =object_id('a')
    select @str
    select @str=replace(@str,'a,','')
    set @str=left(@str,len(@str)-1)+' from a'
    exec(@str)
      

  5.   

    用不着那么复杂吧,很简单的问题吗,在查询器中select不就可以看到包含哪些字段了吗?
      

  6.   

    那你就这样,一个个字段写出来,这样就是一句了.select col1,col2,..... from #temp
      

  7.   

    不行呀,这个临时表是动态创建的,里面的字段是没有固定的.
    也就是说在我在写select语句前我只知道里面有id字段,
    其它几个字段我并不知道。
      

  8.   

    如果表是动态的,那么查询语句你也只能用动态的就是只能用类似CrazyFor(蚂蚁)的方法