EXEC Select语句使用动态列将值存储到变量中

时间:2012-04-05 12:18:23

标签: sql sql-server sql-server-2008 sql-server-2005

我的SQL查询存在问题。我需要使用EXEC执行一个SQL语句,其中一个列已经用变量表示,我现在必须用另一个变量表示该列的值。这可以实现,如果是这样,你能为此建议任何其他解决方案吗?

我通过Google找到了这个代码段。但即使这样也没有给我所需的输出。

我的SQL声明:

declare @i int, @j int =10
exec sp_executesql N'select @i ='+ @j, N'@i int output', @i output
select @i

1 个答案:

答案 0 :(得分:3)

这适用于我的Sql Server 2005:

    declare @i int, @j int
    set @j =10
    declare @sql nvarchar(max)
    set @sql = 'select @i =' + str(@j)
    exec sp_executesql @sql, N'@i int output', @i output
    select @i