IMPLICIT TRANSACTIONS ON / OFF和BEGIN / COMMIT交易

时间:2015-05-14 20:45:32

标签: sql sql-server sql-server-2012

我认为默认设置是自动提交DML语句(默认为IMPLICIT TRANSACTIONS ON)但如果我需要执行BEGIN / COMMIT事务,那么在该BEGIN / COMMIT事务中,IMPLICIT TRANSACTION设置是否会自动关闭?

1 个答案:

答案 0 :(得分:3)

没有默认行为不是隐式事务,在隐式事务中,每个语句都包装在一个新的事务中,然后您必须显式提交或回滚它。

默认行为是自动提交,其中每个语句都包含在事务中,并且在成功执行时它将被提交。

显式事务是指显式开始事务并显式提交事务时,您无需关闭或打开任何内容,只需在SQL语句之前使用BEGIN TRANSACTION即可启动显式事务,现在您必须明确COMMIT TRANSACTIONROLLBACK TRANSACTION

  1. 如果没有执行BEGIN TRANSACTION语句,则它将是默认的自动提交事务模式

  2. 如果您使用BEGIN TRANSACTION语句,则为Explicit Transaction

  3. 最后,要使用隐式交易,您需要使用SET IMPLICIT_TRANSACTIONS ON;

  4. 打开它们