Error: An INSERT EXEC statement cannot be nested insert in a temp table with SP recursively

Error: An INSERT EXEC statement cannot be nested insert in a temp table with SP recursively

我正在努力实现这个

WHILE @@FETCH_STATUS = 0
BEGIN
    INSERT INTO #TRSupervisors
      EXEC [stpEmployee_getExpiryDateSupervisors] '0000912479', '100', @TRplant, 'ILOD', 1, 0
    FETCH NEXT FROM TRcurPlant INTO @TRplant
END

在执行过程中,我收到错误消息。

Msg 8164, Level 16, State 1, Procedure stpEmployee_getExpiryDateSupervisors, Line 87
An INSERT EXEC statement cannot be nested.

如果我在没有插入语句的情况下执行它,就像这样:

WHILE @@FETCH_STATUS = 0
BEGIN
    --insert into #TRSupervisors
    EXEC [stpEmployee_getExpiryDateSupervisors] '0000912479', '100', @TRplant, 'ILOD', 1, 0
    FETCH NEXT FROM TRcurPlant INTO @TRplant
END

我能够得到想要的输出。

请建议一种将输出保存到临时文件中的方法 table。

已找到此问题的解决方案。问题是 SP 在内部递归调用另一个 SP,而另一个 SP 正在插入数据。所以我在主 SP 中替换了定义而不是 SP 调用。这解决了问题。