当前位置: 代码迷 >> Sql Server >> INSERT EXEC 语句不能嵌套解决方法
  详细解决方案

INSERT EXEC 语句不能嵌套解决方法

热度:44   发布时间:2016-04-24 10:09:36.0
INSERT EXEC 语句不能嵌套

declare @tblECGOriginal TABLE 
(
ecgId UNIQUEIDENTIFIER, 
headerInfo nvarchar(4000),
documentInfo nvarchar(4000),
userDefines nvarchar(4000),
orderInfo nvarchar(4000),
reportInfo nvarchar(4000),
acquisitionInfo nvarchar(4000),
      patientInfo nvarchar(4000),
msmtUncomp TEXT,
intrpUncomp ntext,
wvfmUncomp ntext
)  

insert @tblECGOriginal
exec usp_GetEcg_New '131FF2B0-A7EF-41DC-9AC1-E2BCA8CE969D',@Flags=-1 

usp_GetEcg_New 里面会执行复杂的业务处理,最后返回一条结果集。


但是运行后提示错误如下

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

(0 row(s) affected)
Msg 50000, Level 17, State 1, Procedure usp_GetECG_New, Line 607
ERROR: uspGetECG command INSERT INTO #TEMP ... EXEC usp_GetWvfmChunk ... returned "8164"



在CSDN论坛中找到了 过往的一些问答

INSERT EXEC 语句不能嵌套 http://bbs.csdn.net/topics/320166145

但是我看 《用SQL语句获得一个存储过程返回的表》
http://www.cnblogs.com/studyzy/archive/2007/07/26/831924.html
里面是执行正常的。

所以,我想请教各位 
1.最上面的 SQL语法为何出错?
2.现在Exec 返回的结果集 支持哪些情况或者不支持哪些情况。

谢谢各位大牛!

------解决方案--------------------
insert into tb
exec ...
------解决方案--------------------
你这里报错应该是有输出参数的原因。
------解决方案--------------------
弄张实体表吧,用临时表是能嵌套的
  相关解决方案