选择除某些列以外的所有列

时间:2013-12-19 21:39:41

标签: sql sql-server sql-server-2005

我的表中有很多列,比如20-30。我想选择除3-4列以外的所有列。有没有办法到SELECT * EVERYTHING BUT COLUMNS (Address,Name etc...) FROM MyTable如果没有,那么这样的功能会有用吗?

3 个答案:

答案 0 :(得分:2)

- 只需更改表名并将NOT IN列添加

   DECLARE @cols AS NVARCHAR(MAX),   @query  AS NVARCHAR(MAX)
   select @cols = STUFF((SELECT  N',' + QUOTENAME(c.name) 
   FROM sys.tables AS t
   INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
   WHERE t.name = 'tagCloudLibrary'
   and c.name not in ('langID')

        FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)')  ,1,1,'')


 set @query = N'SELECT ' + @cols + N' from tagCloudLibrary'
     execute sp_executesql @query;

答案 1 :(得分:2)

在SSMS中,打开对象资源管理器,右键单击表格 - > “脚本表为” - > “选择到” - > “新查询编辑器窗口”

删除不需要的列并运行查询。它会为您完成所有打字。

答案 2 :(得分:1)

最好只在该表上创建一个VIEW,而不包含您不想看到的列。然后你可以从VIEW中选择SELECT。