[英]Specifying Column Name As A Parameter in SELECT statement?
I need to do something like this, but it always fails with 'Error converting data type varchar to int': 我需要执行以下操作,但始终会因“将数据类型varchar转换为int时出错”而失败:
DECLARE @intParam INT
DECLARE @ColName VARCHAR(64)
SET @ColName='intcolumn'
SET @intParam = SELECT @ColName FROM myTable
How do I accomplish something like this? 我该如何完成这样的事情? I can see the problem is that the SELECT statement simply returns the column name as a string, but I am not sure how to fix that.
我可以看到问题是SELECT语句只是将列名作为字符串返回,但是我不确定如何解决。 I am using SQL Server 2008R2.
我正在使用SQL Server 2008R2。
You need to use dynamic sql: 您需要使用动态sql:
DECLARE @intParam INT
DECLARE @ColName VARCHAR(64)
SET @ColName='intcolumn'
DECLARE @SQL NVARCHAR(1000)
SET @SQL = 'SELECT @intParam_out = ' + @ColName + ' FROM myTable'
exec sp_executesql @SQL, N'@intParam_out int OUTPUT', @intParam_out = @intParam OUTPUT
使用Cast :
SET @intParam = SELECT cast(@ColName as int) FROM myTable
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.