declare @s varchar(1000)
set @s=''
select @s=@s+name+',' from syscolumns
where id=object_id('tablename')
and name<>'b'
set @s='select '+left(@s,len(@s)-1)+' from tablename'
exec (@s)

解决方案 »

  1.   

    这还是要select a,c,d ........ from view  这么长的sql
      

  2.   

    比如:table中有a,b,c,d四字段,只想显示a,c,d三字段。
    那么
    create view exp
    as 
    select a,c,d from table
    go
    以后的不显示字段b查询就直接引用视图exp就行了
    select * from exp
      

  3.   

    哦,
    那还是要写一次select a,c,d from table啊。
      

  4.   

    呵呵,让神帮你吧你想什么也不提供,sql server怎么知道?只有神才能帮你了
      

  5.   

    当你一个字段都不知道时不是可以用select * from table ,现在就是不想select其中的字段b,这个当然应该可以实现,只不过现在还没有找到简单的实现,我觉的数据库的产品应该有实现的语法
      

  6.   

    如果有select except(b) from table 这种写法就好了
      

  7.   


      多写几个名称也嫌罗嗦!!!!!!!!!!
      select a,c,d from table,这样写不很好吗?
      

  8.   

    要吃一踐, 長一智.任何SQL 都不要
    除了複製表結構(SELECT INTO #copy * FROM T WHERE 1 <> 1 )
    的情款下, 都奈點煩.不然需求有變 就頭大