2012-10-15 60 views
12

可能重複:
SQL: Select dynamic column name based on variable我可以通過變量SQL Server中的SELECT語句作爲列名

我有以下簡單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指定列名的DUP查詢](http://stackoverflow.com/questions/7123659/using-dynamic-sql-to-specify-a-column-name-by-adding-a-variable-to-simple-sql-qu) – Spevy

回答

26

不能使用

謝謝變量名中加入一個變量來簡單的SQL綁定列或其他系統對象,你需要動態SQL

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

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

我得到此錯誤消息消息2812,級別16,狀態62,行6 找不到存儲過程'SELECT intStep FROM dbo.tblBatchDetail'。 –

+2

對不起忘了圍繞@sqlText的括號,回答更新 – Steve

+0

現在作品謝謝 –

相關問題