最近 this 发布了关于一般上下文中交易的定义的问题。这个问题的常见答案是事务应该是工作的原子单元
我的问题与这种原子性有关(我认为)我经常在 SQL 存储过程中看到对 ROLLBACK 的显式调用。
显式调用回滚是事务处理系统的常见要求吗?
提交时出现错误是否会自动回滚?
在 TP 系统中,回滚可能基于以下情况发生:
不需要像您所说的“提交时”那样发生回滚,我猜您的意思是“尝试提交时”。事务可以在启动后随时回滚。
在某些情况下,由于触发或违反约束,会自动发生回滚。在其他情况下(就像您所看到的),存储过程本身会执行回滚。艾登是对的,自动提交会有所不同。