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

时间:2013-11-13 06:41:56

标签: sql sql-server database

如何获取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

3 个答案:

答案 0 :(得分:3)

请尝试以下查询以选择没有列的所有列数据。变量@ColList提供列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)

答案 1 :(得分:0)

不幸的是,SQL中没有“SELECT Everything除了一些列”。你必须列出你需要的那些。

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

ALTER TABLE Temp DROP COLUMN Id

Then

SELECT * FROM Temp

答案 2 :(得分:0)

这是不可能的。

您无法在列名中定义通配符,也不能选择除某些通配符之外的所有通配符。您必须为要选择的名称命名,或使用*选择所有。