我想获取除一列之外的所有列,任何人都可以帮助我如何获得结果,除了写所有列名,因为它适用于较少数量的列,但如果表有超过100列然后这将是非常冗长的.......
答案 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)
这是此示例的链接 -
答案 1 :(得分:1)
如果这是经常需要,我会create a view包含您感兴趣的列。
答案 2 :(得分:0)
我不相信这是可能的。
答案 3 :(得分:0)
如果不编写另一个查询来循环遍历列名,则无法做到这一点。
如果您知道需要哪些列,则应{名称} SELECT
。
如果没有,您应该SELECT *
。
答案 4 :(得分:0)
你必须列出我害怕的所有名字。假设这是一个永久数据库对象(例如表,视图),那么在Management studio中,您可以右键单击树视图中的对象,然后选择SCRIPT TABLE AS -> SELECT
以避免全部键入。
或者将“columns”文件夹拖到查询窗口中,以添加以逗号分隔的列名列表。