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 ...
------解决方案--------------------
你这里报错应该是有输出参数的原因。
------解决方案--------------------
弄张实体表吧,用临时表是能嵌套的