在存储过程中,我有一条EXEC
语句;我想将其结果存储到表中。
首先,我将表参数创建为:
DECLARE @MyTable AS TABLE
(
[Item1] INT,
[Item2] DECIMAL
)
然后我尝试将值插入为:
INSERT INTO @MyTable
EXEC [storedProcedure] @testitem = @testitem
我的问题:这是正确的方法吗?还是我需要使用动态查询?
因为我读过类似的问题,例如this,所以他们建议使用动态查询。
答案 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