Sql server 获取除一列之外的所有列的
我想获取除一列之外的所有列,除了写入所有列名,谁能帮助我如何获得结果,因为这对于较少的列数很好,但是如果表有100多列,那么它将非常长……我认为这是不可能的。为此,您需要执行动态SQL。您可以创建一个返回列名的函数,也可以执行以下操作Sql server 获取除一列之外的所有列的,sql-server,Sql Server,我想获取除一列之外的所有列,除了写入所有列名,谁能帮助我如何获得结果,因为这对于较少的列数很好,但是如果表有100多列,那么它将非常长……我认为这是不可能的。为此,您需要执行动态SQL。您可以创建一个返回列名的函数,也可以执行以下操作 DECLARE @ColList Varchar(1000), @SQLStatment VARCHAR(4000) SET @ColList = '' select @ColList = @ColList + Name + ' , ' from syscolum
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)
下面是这个例子的链接-
如果不编写另一个查询来循环列名,这是不可能的 如果您知道需要哪些列,则应按名称选择这些列。
如果没有,你应该
选择*
恐怕你必须列出所有的名字。假设这是一个永久性的数据库对象(例如,表、视图),那么在Management studio中,您可以右键单击树视图中的对象,然后选择SCRIPT table AS->SELECT
,以避免键入所有对象
或者,也可以将“columns”文件夹拖到查询窗口中,以添加以逗号分隔的列名列表。如果经常需要,我希望其中包含您感兴趣的列。这是可能的,但不需要动态SQL;您将编写一个类似Sachin的查询,动态创建查询字符串。您的表不太可能有100列;你能给出一个很好的理由吗?可能是重复的