我调用存储过程到另一个stroed proceudre,现在如果第一个存储过程提供任何错误的话,我想回滚该存储过程的TRANSATION,如在完成调用后,DB2提交存储过程事务。如何回滚存储过程调用的交易在其他程序中的DB2
那么该怎么做?
我调用存储过程到另一个stroed proceudre,现在如果第一个存储过程提供任何错误的话,我想回滚该存储过程的TRANSATION,如在完成调用后,DB2提交存储过程事务。如何回滚存储过程调用的交易在其他程序中的DB2
那么该怎么做?
从你的描述,它听起来就像你的应用程序执行CALL B()
。存储过程B
执行CALL A()
语句。
除非任何的存储过程包括COMMIT
声明(这违背最佳做法),那么它是由调用应用程序,以确定是否CALL B()
语句是成功还是失败,并决定是否发出COMMIT
或ROLLBACK
声明。执行ROLLBACK
应回滚任何/由B
和A
所做的所有更改。
你能提供流动细节?常规的行为是内部存储过程的更改也会回滚。 DB2也有所谓的“自治事务”,但您需要明确地使被调用的过程使用它。 –
假设我打电话的过程的到另一个具有名称B,所以如果现在如果有任何错误发生在步骤A,然后因为我在B. – Govind