首页 > 解决方案 > 将 EXEC 的结果插入到表参数中

问题描述

在存储过程中,我有一个EXEC语句;我想将其结果存储到表中。

首先,我将表参数创建为:

DECLARE @MyTable AS TABLE
                    (
                        [Item1] INT, 
                        [Item2] DECIMAL
                    )

然后我尝试将值插入为:

INSERT INTO @MyTable 
    EXEC [storedProcedure] @testitem = @testitem

我的问题:这是正确的方法吗?还是我需要使用动态查询?

因为我读过类似的问题他们建议使用动态查询。

标签: sqlsql-servertsqlsql-server-2017

解决方案


您必须使用动态查询。

DECLARE @Sql AS VARCHAR(MAX);
SET @Sql='EXEC storedProcedure @testitem = @testitem'
INSERT INTO @MyTable ([Item1], [Item2]) EXEC(@Sql)
SELECT * FROM @MyTable;

断言上述内容,我只是想进一步阅读......并找到了这个较旧的线程。我敢打赌,进一步分析它会很有帮助。将存储过程的结果插入临时表


推荐阅读