【发布时间】:2010-11-01 18:30:14
【问题描述】:
最近this 发布了一个关于一般上下文中事务的定义的问题。这个问题的一个常见答案是事务应该是一个原子工作单元
我的问题与这种原子性有关(我认为)我经常在 SQL 存储过程中看到对 ROLLBACK 的显式调用。
明确要求回滚是事务处理系统的普遍要求吗?
如果提交时出现错误,是否会自动回滚?
【问题讨论】:
最近this 发布了一个关于一般上下文中事务的定义的问题。这个问题的一个常见答案是事务应该是一个原子工作单元
我的问题与这种原子性有关(我认为)我经常在 SQL 存储过程中看到对 ROLLBACK 的显式调用。
明确要求回滚是事务处理系统的普遍要求吗?
如果提交时出现错误,是否会自动回滚?
【问题讨论】:
在某些情况下,由于触发器或约束违规,会自动发生回滚。在其他情况下(如您所见),存储过程本身会进行回滚。 Aiden 说得对,自动提交会有所不同。
【讨论】:
在 TP 系统中,回滚可以基于:
正如您所说的“提交时”,不需要发生回滚,我猜您的意思是“尝试提交时”。事务可以在开始后的任何时间回滚。
【讨论】: