OracleTransaction.Rollback()是否取代了存储过程中的提交?

时间:2017-06-01 16:03:10

标签: c# oracle transactions system.data.oracleclient

假设我有从c#代码执行的多个存储过程的代码。在异常情况下,每个存储过程都有提交和回滚。在这些存储过程中处理异常并返回处理的错误消息。

如果我有一个OracleTransaction.BeginTransaction()"运行",在执行存储过程时在同一连接对象上,c#代码中的OracleTransaction.Rollback()实际上回滚先前执行的数据存储过程。

逻辑如下:

  1. 打开连接
  2. 开始交易
  3. 执行一个存储过程(使用内部提交)
  4. 如果一切正常,请执行另一个存储过程(使用commit)。如果没有,请回滚以前的存储过程并完全停止。
  5. 没有错误提交事务。 谢谢。

1 个答案:

答案 0 :(得分:2)

COMMIT结束当前事务,新事务以下一个可执行SQL语句开始。因此,后续的ROLLBACK只能撤消以前的{em> 所做的更改,而之前的