26

重複の可能性:
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)を使用しています

これはストアドプロシージャになります

前もって感謝します

4

1 に答える 1

47

変数名を使用して列や他のシステムオブジェクトをバインドすることはできません。動的SQLが必要です

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

SET @sqlText = N'SELECT ' + @value + ' FROM dbo.tblBatchDetail'
Exec (@sqlText)
于 2012-10-15T13:04:07.490 に答える