Transactions 是对还是错?回滚并提交

Transactions 是对还是错?回滚并提交,transactions,commit,rollback,Transactions,Commit,Rollback,它是关于SQL中的COMMIT语句和ROLLBACK语句的 我知道ROLLBACK语句与COMMIT语句相反 如果我们说“COMMIT语句与ROLLBACK语句相反”,会怎么样 是对还是错?如果不是,请解释一下 感谢您的帮助从SQL Server的角度来看,“反向”的使用可能会误导“嵌套”事务 : 标记成功的隐式或显式事务的结束 : 将显式或隐式事务回滚到事务的开头,或回滚到事务内部的保存点 例如: BEGIN TRAN BEGIN TRAN SELECT 'sth'; COMMIT; SELE

它是关于SQL中的COMMIT语句和ROLLBACK语句的

我知道ROLLBACK语句与COMMIT语句相反

如果我们说“COMMIT语句与ROLLBACK语句相反”,会怎么样

是对还是错?如果不是,请解释一下


感谢您的帮助

从SQL Server的角度来看,“反向”的使用可能会误导“嵌套”事务

: 标记成功的隐式或显式事务的结束

: 将显式或隐式事务回滚到事务的开头,或回滚到事务内部的保存点

例如:

BEGIN TRAN
BEGIN TRAN
SELECT 'sth';
COMMIT;
SELECT @@TRANCOUNT;
-- 1
vs


不,它不一样。如果回滚,则在执行更多的DML之前,不会有任何内容要提交,或者是另一个的“反向”。一旦进行了提交,就无法回滚。一旦你做了回滚,你就不能提交了。你只能说一个是另一个的对立面
BEGIN TRAN
BEGIN TRAN
SELECT 'sth';
ROLLBACK;
SELECT @@TRANCOUNT;
-- 0 (nothing to commit)