我有以下简单的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)
这将是一个存储过程
提前致谢
答案 0 :(得分:0)
您可以使用动态SQL执行此操作,但这是 BAD 练习。
以下是您的问题的答案,但我肯定不会这样做,因为它会让您受到SQL注入攻击。
create procedure GetColumn
@columnName varchar(50),
@g varchar(200)
as
declare @str varchar(2000)
set @str = 'select [' + @columnName + '] from dbo.tblBatchDetail where Gnumber = ' + @g
exec ( @str )
GO