Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 获取除一列之外的所有列的_Sql Server - Fatal编程技术网

Sql server 获取除一列之外的所有列的

Sql server 获取除一列之外的所有列的,sql-server,Sql Server,我想获取除一列之外的所有列,除了写入所有列名,谁能帮助我如何获得结果,因为这对于较少的列数很好,但是如果表有100多列,那么它将非常长……我认为这是不可能的。为此,您需要执行动态SQL。您可以创建一个返回列名的函数,也可以执行以下操作 DECLARE @ColList Varchar(1000), @SQLStatment VARCHAR(4000) SET @ColList = '' select @ColList = @ColList + Name + ' , ' from syscolum

我想获取除一列之外的所有列,除了写入所有列名,谁能帮助我如何获得结果,因为这对于较少的列数很好,但是如果表有100多列,那么它将非常长……

我认为这是不可能的。

为此,您需要执行动态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)
下面是这个例子的链接-


如果不编写另一个查询来循环列名,这是不可能的

如果您知道需要哪些列,则应按名称选择这些列。
如果没有,你应该
选择*

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


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

如果经常需要,我希望其中包含您感兴趣的列。

这是可能的,但不需要动态SQL;您将编写一个类似Sachin的查询,动态创建查询字符串。您的表不太可能有100列;你能给出一个很好的理由吗?可能是重复的