获取除一个之外的所有列

时间:2010-08-12 13:05:37

标签: sql-server

我想获取除一列之外的所有列,任何人都可以帮助我如何获得结果,除了写所有列名,因为它适用于较少数量的列,但如果表有超过100列然后这将是非常冗长的.......

5 个答案:

答案 0 :(得分:2)

为此,您需要执行dynamic-SQL。您可以创建一个函数,它将返回列名称,或者您可以执行类似

的操作
DECLARE @ColList Varchar(1000), @SQLStatment VARCHAR(4000)
SET @ColList = ''
select @ColList = @ColList + Name + ' , ' from syscolumns where id = object_id('Table1') AND Name != 'Column20'
SELECT @SQLStatment = 'SELECT ' + Substring(@ColList,1,len(@ColList)-1) + ' From Table1'
EXEC(@SQLStatment)

这是此示例的链接 -

http://social.msdn.microsoft.com/Forums/en-US/transactsql/thread/39eb0314-4c2f-4e07-84c8-e832499049f8

答案 1 :(得分:1)

如果这是经常需要,我会create a view包含您感兴趣的列。

答案 2 :(得分:0)

我不相信这是可能的。

答案 3 :(得分:0)

如果不编写另一个查询来循环遍历列名,则无法做到这一点。

如果您知道需要哪些列,则应{名称} SELECT。 如果没有,您应该SELECT *

答案 4 :(得分:0)

你必须列出我害怕的所有名字。假设这是一个永久数据库对象(例如表,视图),那么在Management studio中,您可以右键单击树视图中的对象,然后选择SCRIPT TABLE AS -> SELECT以避免全部键入。

或者将“columns”文件夹拖到查询窗口中,以添加以逗号分隔的列名列表。