sql - EXEC Select 语句与动态列将值存储到变量中

标签 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

最佳答案

这在我的 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

关于sql - EXEC Select 语句与动态列将值存储到变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10028460/

相关文章:

sql - 具有不同时间戳的重复条目

mysql - 从表中删除1条记录并自动删除mysql中与user_id关联的所有记录

c# - SQL 依赖项在 SQL Server 中导致错误

sql - Microsoft SQL Server 备份物理设备名称

sql-server - MSSQL2012 在用户级别加密单元格

sql - 如何在 SQL 中将顺序的、带时间戳的行组合在一起并返回每个组的日期范围

sql - 如何使用 SQL Server 2008 打开和关闭 IDENTITY_INSERT?

mysql - 为什么用mySQL在 "USING BTREE"中出现了一个 "CREATE TABLE"?

sql - Oracle中如何比较表中的行并保留行中的最高值

java - 从手写持久层迁移到ORM