SELECT dbo.sysobjects.xtype, dbo.syscolumns.name, dbo.sysobjects.name AS Expr1, 
      dbo.syscolumns.colid
FROM dbo.syscolumns INNER JOIN
      dbo.sysobjects ON dbo.syscolumns.id = dbo.sysobjects.id
WHERE (dbo.sysobjects.xtype = 'U') And dbo.sysobjects.name ='表名' and dbo.syscolumns.colid=19

解决方案 »

  1.   

    Declare @str varchar(200)
    SELECT @str= dbo.syscolumns.name
          dbo.syscolumns.colid
    FROM dbo.syscolumns INNER JOIN
          dbo.sysobjects ON dbo.syscolumns.id = dbo.sysobjects.id
    WHERE (dbo.sysobjects.xtype = 'U') And dbo.sysobjects.name ='表名' and dbo.syscolumns.colid=19
    Exec('Select '+@str+' From tb')
      

  2.   

    在MS SQL 中实现不了在Oracle中可以实现的
      

  3.   

    那在ORACLE中怎么实现呢?还请指教,谢谢。
      

  4.   

    declare @s as varchar(200)
    declare @tablename as varchar(200)
    set @tablename=表名
    set @s=''
    select @s=@s+','+ltrim(rtrim(name)) from
    (
    select a.name from syscolumns a, sysobjects d 
    where a.id=d.id  and  d.name=@tablename
    )

    set @s=stuff(@s,1,1,'')
    --print @s
    exec('select '+@s+' from '+@tablename+'')
    --根据条件可以生成表列,如果指定19,就用top 19,自己想要的列,加个条件既可!
      

  5.   

    用视图,不选不要的列就行了,然后直接select * from 表名
      

  6.   

    在系统表(all_tab_columns)中把这个表的所有字段查出来,然后复制,把没用的删掉,再粘贴到你的sql中去
      

  7.   

    到SQL中创建一个视图,然后把语句Copy出来不就行了,搞那么复杂???????
      

  8.   

    oracle很麻烦
    用存储过程可以拼sql剔掉你这个列,但是oracle的sp返回结果集是个问题
      

  9.   

    select * from 语句中的“*”要消耗大量的翻译解释时间,降低效率,建议不要这样使用,
    如果不想写这个select 字段名 from 这类的语句,可以用工具自动生成啊。
      

  10.   

    select * from 语句中的“*”要消耗大量的翻译解释时间,降低效率,建议不要这样使用,
    如果不想写这个select 字段名 from 这类的语句,可以用工具自动生成啊。
      

  11.   

    唉,其实,我最希望的sql语句是类似于: select not column19 from table 这种的。可惜上面的语句是不成立的。所以,我想知道有没有跟上面类似的语句?不过,既然这么多的高手都没有更简单的方法,那看来是没有的了。希望以后的ansi sql 能解决这个问题。