declare @sql varchar(8000) set @sql='select ' select @sql=@sql+',['+name+']' from syscolumns where id=object_id('test') and '['+name+']' not in('不显示的列名') order by colidset @sql=stuff(@sql,8,1,'') print @sql exec(@sql+'from test')
没有测试,可能有错,但方法是可行的test为你的表名@sql=@sql+',['+name+']' from syscolumns where id=object_id('test')可以查出test的所有字段,然后再用一个not in
如果全部显示只要用select * 就可以了,
但如果不显示某一字段要将剩余的所有字段全部写出来,十分麻烦!
set @sql='select '
select @sql=@sql+',['+name+']' from syscolumns where id=object_id('test') and '['+name+']' not in('不显示的列名')
order by colidset @sql=stuff(@sql,8,1,'')
print @sql
exec(@sql+'from test')