我现在遇到一难题:有一个数据表,但是我只知道一个字段的名称。现在我想查询数据库里面的除去这个字段的所有数据!请问怎么办?谢谢各位!!

解决方案 »

  1.   

    declare @sql varchar(2000)
    set @sql = ''
    select @sql = @sql + ',' + name from syscolumns where id = object_id('表名') and name <> '字段名'
    select stuff(@sql,1,1,'')
    exec('select '+@sql+' from 表名')
      

  2.   

    想不出更好的办法,我的思路是创建一个存储过程,参数传数据表名字和知道的那个字段名字,然后在存储过程里面 用syscolumns 和sysobjects 找出除了这个字段之外的这个表的其他字段,再进行查询,感觉这样挺麻烦的,期待高手
      

  3.   

    楼上很强,不过有一个小小的错误select @sql=stuff(@sql,1,1,'')
      

  4.   

    --正解如下
    declare @sql varchar(2000)
    set @sql = ''
    select @sql = @sql + ',' + name from syscolumns where id = object_id('表名') and name <> '字段名'
    set @sql=stuff(@sql,1,1,'')
    exec('select '+@sql+' from 表名')
      

  5.   

    呵呵,是写错了.declare @sql varchar(2000)
    set @sql = ''
    select @sql = @sql + ',' + name from syscolumns where id = object_id('表名') and name <> '字段名'
    select @sql = stuff(@sql,1,1,'')
    exec('select '+@sql+' from 表名')
      

  6.   

    我晕.
      知道表名和一个字段.还写什么过程...我狂晕!
    select * from 表名再来一个.
    select 不就OK、了吗?
      

  7.   

    gahade(与君共勉) ( ) 正解