sql - 将 EXEC 的结果插入到表参数中
问题描述
在存储过程中,我有一个EXEC
语句;我想将其结果存储到表中。
首先,我将表参数创建为:
DECLARE @MyTable AS TABLE
(
[Item1] INT,
[Item2] DECIMAL
)
然后我尝试将值插入为:
INSERT INTO @MyTable
EXEC [storedProcedure] @testitem = @testitem
我的问题:这是正确的方法吗?还是我需要使用动态查询?
因为我读过类似的问题,他们建议使用动态查询。
解决方案
您必须使用动态查询。
DECLARE @Sql AS VARCHAR(MAX);
SET @Sql='EXEC storedProcedure @testitem = @testitem'
INSERT INTO @MyTable ([Item1], [Item2]) EXEC(@Sql)
SELECT * FROM @MyTable;
断言上述内容,我只是想进一步阅读......并找到了这个较旧的线程。我敢打赌,进一步分析它会很有帮助。将存储过程的结果插入临时表
推荐阅读
- rxjs - 为什么在范围运算符中使用 asyncScheduler 关键字会推迟订阅?
- javascript - 如何使 Promise 解析在 else 语句 javascript 中触发?
- python - 检测图像中重叠的嘈杂圆圈
- php - 调用另一个函数(来自我的供应商文件夹)时调用函数
- javascript - Jest、TypeScript 和 ts-jest:SyntaxError:无法在模块外使用 import 语句
- solr - 如何在 Solr 查询中按自定义字段过滤结果?
- java - Scene Builder 无法打开带有注释的 FXML 文件
- git - Git突然读取公钥而不是私钥
- php - 无法在 laravel php 框架中迁移
- c# - 将 SQL 中的表连接成一行