2015-08-28 25 views
0

我调用存储过程到另一个stroed proceudre,现在如果第一个存储过程提供任何错误的话,我想回滚该存储过程的TRANSATION,如在完成调用后,DB2提交存储过程事务。如何回滚存储过程调用的交易在其他程序中的DB2

那么该怎么做?

+0

你能提供流动细节?常规的行为是内部存储过程的更改也会回滚。 DB2也有所谓的“自治事务”,但您需要明确地使被调用的过程使用它。 –

+0

假设我打电话的过程的到另一个具有名称B,所以如果现在如果有任何错误发生在步骤A,然后因为我在B. – Govind

回答

0

从你的描述,它听起来就像你的应用程序执行CALL B()。存储过程B执行CALL A()语句。

除非任何的存储过程包括COMMIT声明(这违背最佳做法),那么它是由调用应用程序,以确定是否CALL B()语句是成功还是失败,并决定是否发出COMMITROLLBACK声明。执行ROLLBACK应回滚任何/由BA所做的所有更改。

+0

调用它,它也不会被回滚其实我调用过程到另一个程序,当我的父母程序给出任何错误,那么就不能rolledback被子程序提交事务,这我打电话在 那么ü知道如何回滚trasaction? – Govind

+0

请张贴演示发生了什么的代码。 –

+0

我使用db2中的原子来解决它自己的问题。 谢谢 – Govind