2

如何在 SQL Server 的 sql 表中获取没有一列的所有列名。

我有一个临时表。它有列:

ID, Status, Code, Name, Location, Address, Title, Category, Line, date, time, UserName

我想要所有没有该id列的数据

我想要这个 SQL 代码的替代品

SELECT Status, Code, Name, Location, Address, Title, Category, Line, date, time, UserName 
FROM TEMP
4

3 回答 3

3

请尝试以下查询以选择所有没有列的列数据。变量@ColList给出除 column 之外的列名ID

DECLARE @ColList nvarchar(4000), @SQLStatment nvarchar(4000),@myval nvarchar(30)
SET @ColList = ''

select @ColList = @ColList + Name + ' , ' from syscolumns where id = object_id('TableName') AND Name != 'ID'
SELECT @SQLStatment = 'SELECT ' + Substring(@ColList,1,len(@ColList)-1) + ' From TableName'

EXEC(@SQLStatment)
于 2013-11-13T06:48:01.607 回答
0

不幸的是,SQL 中没有“选择除某些列之外的所有内容”。你必须列出你需要的那些。

如果这是一个临时表,我猜您可以尝试在选择结果之前删除 ID 列。如果您再次需要它,这不合适......

ALTER TABLE Temp DROP COLUMN Id

Then

SELECT * FROM Temp
于 2013-11-13T06:44:41.150 回答
0

这是不可能的。

您不能在列名中定义通配符,也不能选择除部分外的所有通配符。您必须命名要选择的名称或用于*全选的名称。

于 2013-11-13T06:44:49.037 回答