2012-10-15 26 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

现在作品谢谢 –

相关问题