有两个存储过程sp1和sp2:
---------------------------------------------------
sp2对某一流程进行处理,并返回处理结果,其中包含事务
简单流程如下:
BEGIN TRANSACTION


if(...)
  COMMIT TRANSACTION
  select 1,'成功'
  return 1
else 
  ROLLBACK TRANSACTION
  select 0,'失败'
-------------------------------------------------
sp1参数是个自定义表结构用于批量传入要处理的数据
:
再自定义一个表变量@t用于返回批量执行结果
用游标循环执行sp2,并将结构插入@t
insert into @t exec sp2
最后将@t的结果返回出来
-------------------------------------------------
我在单独对sp2测试时是正常的
不论是否回滚都是正常的
但是测试sp1时,如果sp2不回滚就正常输出,
如果sp2回滚就报错:不能在 INSERT-EXEC 语句内部使用 ROLLBACK 语句
请问大师们该如何处理?或者有没变通的方法?谢谢