2013-11-13 4 views
2

Как получить все имена столбцов без одного столбца в таблице sql в SQL Server.Как получить все имена столбцов без одного столбца в таблице sql в SQL Server

У меня есть временная таблица. Он имеет столбцы:

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

Вы не можете сделать это; если вам нужны только некоторые столбцы из таблицы, вы должны перечислить их все. Ни в коем случае. –

+0

Вы можете сделать это, только если вы строите динамический оператор SQL и используете sp_executesql. – gotqn

+1

+1 для балансировки неуместных отрицательных голосов – gotqn

ответ

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) 
+2

+1 Да, это единственный способ сделать это. – gotqn

0

К сожалению, там нет «ВЫБРАТЬ Все, кроме некоторых столбцов "в SQL. Вы должны перечислить те, которые вам нужны.

Если это временная таблица, я думаю, вы могли бы попытаться сбросить столбец идентификатора перед тем, как выбрать результат. Это не подходит, если вам это нужно еще ...

ALTER TABLE Temp DROP COLUMN Id 

Then 

SELECT * FROM Temp 
0

Это невозможно.

Вы не можете определить подстановочные знаки в именах столбцов или выбрать все, кроме некоторых. Вы должны указать те, которые вы хотите выбрать или использовать *, чтобы выбрать все.

Смежные вопросы