Подтвердить что ты не робот

Могу ли я передать переменную для выбора оператора в качестве имени столбца в SQL Server

Возможный дубликат:
SQL: выберите динамическое имя столбца на основе переменной

У меня есть следующий простой оператор select:

 DECLARE @value varchar(10) 
 SET @value = 'intStep' 

 SELECT @value FROM dbo.tblBatchDetail 

Я пробовал

 SELECT CAST(@value AS varchar(10)) FROM dbo.tblBatchDetail 

и я получаю список intstep

ВОПРОС. Могу ли я передать переменную как имя столбца в этот оператор? Или что это лучший способ сделать это

Я использую SQL Server 2008 (9.0 RTM)

Это будет хранимая процедура

Заранее спасибо

4b9b3361

Ответ 1

Вы не можете использовать имена переменных для привязки столбцов или других системных объектов, вам нужен динамический sql

DECLARE @value varchar(10)  
SET @value = 'intStep'  
DECLARE @sqlText nvarchar(1000); 

SET @sqlText = N'SELECT ' + @value + ' FROM dbo.tblBatchDetail'
Exec (@sqlText)