Могу ли я передать переменную для выбора оператора в качестве имени столбца в 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)
Это будет хранимая процедура
Заранее спасибо
Ответы
Ответ 1
Вы не можете использовать имена переменных для привязки столбцов или других системных объектов, вам нужен динамический sql
DECLARE @value varchar(10)
SET @value = 'intStep'
DECLARE @sqlText nvarchar(1000);
SET @sqlText = N'SELECT ' + @value + ' FROM dbo.tblBatchDetail'
Exec (@sqlText)