我需要这样做,但它总是失败,并显示“将数据类型varchar转换为int时出错”:
DECLARE @intParam INT
DECLARE @ColName VARCHAR(64)
SET @ColName='intcolumn'
SET @intParam = SELECT @ColName FROM myTable
我该如何完成这样的事情呢?我可以看到问题是SELECT语句只是以字符串的形式返回列名,但是我不确定如何解决这个问题。我正在使用SQL Server 2008R2。
发布于 2011-11-18 01:01:46
您需要使用动态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
发布于 2011-11-18 00:55:11
使用Cast
SET @intParam = SELECT cast(@ColName as int) FROM myTable
https://stackoverflow.com/questions/8176485
复制相似问题