如果您正在事务处理中途执行DDL语句(例如截断表),则事务将提交。
我想知道这是否始终都是正确的定义,或者是否存在隐藏在某个位置的设置,该设置将回滚事务而不是提交事务。
谢谢。
编辑以澄清...
我不想在截断后回滚。我只想确认已经执行的语句绝对总是要在DDL之前提交。只是想确保某个人没有设置可以破坏我的代码的系统属性。
我了解在DDL之前和之后进行提交的需求,但是从概念上讲,我认为可以通过在DDL之前进行回滚和在DDL之后进行提交来实现相同的一致性要求。
最佳答案
不,它将始终提交。
如果要回滚,则必须在DDL之前进行。
如果要从现有事务中隔离DDL,则必须在其自己的独立事务中执行它。
关于sql - DDL语句是否总是为您提供隐式提交,还是可以得到隐式回滚?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/730621/