如何获取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
答案 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)
这是不可能的。
您无法在列名中定义通配符,也不能选择除某些通配符之外的所有通配符。您必须为要选择的名称命名,或使用*
选择所有。