declare @sql varchar(1000)
select @sql=isnull(@sql,'')+','+name
from syscolumns where id=object_id('表名')
                      and name<>'要排除的列名'
set @sql='select '+stuff(@sql,1,1,'')+' from 表'
exec(@sql)

解决方案 »

  1.   

    /*开发辅助函数。
    自己写一个取某个表的各字段名称的函数.
    参数:@prefix前缀
         @tablename 表名.
    返回:该表的所有字段的字符串.
    */
    CREATE FUNCTION [dbo].[dev_fns_GetColStr] (@prefix varchar(20),@tablename varchar(200))  
    RETURNS varchar(1000) AS  
    BEGIN 
    declare @str varchar(1000)
    select @str=''
    select @str=@str+@prefix+[name]+',' from syscolumns where [id]= object_id(@tablename) order by colorder
    if len(@str)>0
    select @str=left(@str,len(@str)-1)
    return @str
    END
    --如下调用,将显示所有字段名,可以把不要的删除掉。如果是多表链接,就加入前缀。
    select dbo.dev_fns_GetColStr('','表名字')
      

  2.   

    如果你用pb的话,可以在数据窗口里面操作 。select * from table .然后在编辑一下。去掉你不用的字段就可以了。 不过不如上面的好用。上面得很好,真是佩服 vivianfdlpw()每次都能很正确的回答问题,而且用的方法还是比较经典的。希望有机会可以交流一下。