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 调用。这解决了问题。
我正在努力实现这个
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 调用。这解决了问题。