关于SQL中的COMMIT语句和ROLLBACK语句
我知道ROLLBACK语句是COMMIT语句的逆。
如果我们说“ COMMIT语句是ROLLBACK语句的逆序”,怎么办
是正确还是不正确?如果没有解释,请
感谢您的帮助
从SQL Server的角度来看,“反”的用法可能会与“嵌套”事务产生误导
COMMIT:标记成功的隐式或显式事务的结束。ROLLBACK:将显式或隐式事务回滚到事务的开始,或者回滚到事务内部的保存点。
COMMIT:标记成功的隐式或显式事务的结束。
ROLLBACK:将显式或隐式事务回滚到事务的开始,或者回滚到事务内部的保存点。
示例:
BEGIN TRAN BEGIN TRAN SELECT 'sth'; COMMIT; SELECT @@TRANCOUNT; -- 1
vs
BEGIN TRAN BEGIN TRAN SELECT 'sth'; ROLLBACK; SELECT @@TRANCOUNT; -- 0 (nothing to commit)
db<>fiddle demo