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