如果在嵌套调用两个以上存储过程时,可以保证事务吗?
比如说,在存储过程sp1调用存储过程sp2,两个存储过程各有一个事务,如果sp1失败后,sp2也会回滚吗?
   PROCEDURE sp1
   AS
   BEGIN
     .....     执行 sp2 (另外一个存储过程)
     commit;
   EXCEPTION
     rollback;
   END SP_Get_ExcursusList;

解决方案 »

  1.   

    如果sp2中没有commit和rollback的话,那么在sp1中调用sp2后再执行commit或rollback,也会提交或回滚sp2中的事务。
      

  2.   

    如果SP2里有commit和rollback呢,sp2执行完commit后,sp1却rollback了,那么sp2会不会也rollback呢
      

  3.   

    如果sp2中没有commit和rollback的话,那么在sp1中调用sp2后再执行commit或rollback,也会提交或回滚sp2中的事务。建议,不再在procedure里面进行事务处理事务处理放在调用它的外部程序
      

  4.   

    那是说,两个存储过程都不要commit和rollback,在外部程序调用的地方使用外部程序的事务处理机制,是这样吗,这样做有什么问题没有