You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server中如何将EXEC()执行结果赋值给变量

动态SQL执行结果赋值给变量的解决方案

你尝试的set @result = EXEC('SELECT ' + @SQL)语法在SQL Server中不被支持,无法直接将EXEC的执行结果赋值给变量。要实现这个需求,需要使用sp_executesql存储过程,通过定义输出参数来接收动态SQL的执行结果。

以下是修改后的完整可运行代码:

DECLARE
     @SQL NVARCHAR(200),
     @FID NVARCHAR(4) = 'F',
     @RESULT FLOAT;

SET @SQL = 'F+1+2.5+1';
SET @SQL = REPLACE(@SQL, @FID, 3);

-- 利用sp_executesql执行动态SQL并将结果赋值给@RESULT
EXEC sp_executesql 
    @stmt = N'SELECT @OutputResult = ' + @SQL,
    @params = N'@OutputResult FLOAT OUTPUT',
    @OutputResult = @RESULT OUTPUT;

-- 查看最终计算结果
SELECT @RESULT AS 计算结果;

关键说明:

  • @stmt:传入拼接完成的动态计算语句,这里指定将计算结果赋值给输出参数@OutputResult
  • @params:声明输出参数的类型与属性,OUTPUT标记该参数用于接收执行结果
  • @OutputResult = @RESULT OUTPUT:将动态SQL的执行结果传递到预先定义的变量@RESULT中

内容的提问来源于stack exchange,提问作者dorsa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 21:35:59