Stored procedures 如何回滚db2中调用另一个过程的存储过程的事务

Stored procedures 如何回滚db2中调用另一个过程的存储过程的事务,stored-procedures,transactions,db2,Stored Procedures,Transactions,Db2,我正在将一个存储过程调用到另一个stromed proceudre中,现在如果第一个存储过程出现任何错误,那么我希望回滚该存储过程的事务,因为DB2在调用完成后提交存储过程的事务 那么如何做到这一点呢?根据您的描述,您的应用程序似乎执行了调用B()。存储过程B执行calla()语句 除非任何一个存储过程包含COMMIT语句(这违反了最佳实践),否则调用应用程序将决定CALL B()语句是否成功,并决定是否发出COMMIT或ROLLBACK语句。执行ROLLBACK应回滚B和A所做的任何/所有更改

我正在将一个存储过程调用到另一个stromed proceudre中,现在如果第一个存储过程出现任何错误,那么我希望回滚该存储过程的事务,因为DB2在调用完成后提交存储过程的事务


那么如何做到这一点呢?

根据您的描述,您的应用程序似乎执行了
调用B()
。存储过程
B
执行
calla()
语句


除非任何一个存储过程包含
COMMIT
语句(这违反了最佳实践),否则调用应用程序将决定
CALL B()
语句是否成功,并决定是否发出
COMMIT
ROLLBACK
语句。执行
ROLLBACK
应回滚
B
A
所做的任何/所有更改。能否提供流程的详细信息?常规行为是内部存储过程的更改也将回滚。DB2也有所谓的“自治事务”,但您需要显式地让被调用的过程使用它,因此,如果现在在过程A中出现任何错误,那么它将不会回滚,因为我在B中调用它。实际上,我正在将一个过程调用到另一个过程中,当父过程出现任何错误时,它将无法回滚子过程提交的事务,我正在调用它,所以你知道如何回滚传输吗?请发布代码来演示正在发生的事情。我使用db2中的原子来解决它。谢谢