将EXEC的结果插入表参数

时间:2019-03-06 18:41:18

标签: sql sql-server tsql sql-server-2017

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

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

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

然后我尝试将值插入为:

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

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

因为我读过类似的问题,例如this,所以他们建议使用动态查询。

1 个答案:

答案 0 :(得分:0)

您必须使用动态查询。

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

声明以上内容,我只是想进一步阅读...而发现了这个较旧的线程。我敢打赌,进一步分析将很有帮助。 Insert results of a stored procedure into a temporary table