(4.19)sql server中的事务模式(隐式事务,显式事务,自动提交事务)

时间:2023-12-19 09:20:08

(4.19)sql server中的事务模式(隐式事务,显式事务,自动提交事务)

1.概念:隐式事务,显式事务,自动提交事务

2.操作:如何设置事务模式

3.存储过程中的事务 XACT_ABORT

1.概念

  【1】隐式事务:即每个窗口操作自动加上begin tran,但是不会自动提交,需要手动提交。

  【2】显示事务:需要begin tran             commit tran/ rollback tran   配合使用

  【3】自动提交事务:每一个DML、DDL都是独立的事务,并且一旦执行就自动提交/错误也会自动回滚。

事务的基本控制语句

BEGIN TRANSACTION 表示本地事务的开始
BEGIN DISTRIBUTED TRANSACTION表示分布式事务起始
COMMIT TRANSACTION表示事务的提交
ROLLBACK TRANSACTION表示事务的回滚
COMMIT事务的提交 与COMMIT TRANSACTION功能相同
ROLLBACK 事务的回滚与ROLLBACK TRANSACTION功能相同
SAVE TRANSACTION设置事务保存点

2、操作

  【1】隐式事务

    SET IMPLICIT_TRANSACTIONS ON 语句启动隐性事务模式
    SET IMPLICIT_TRANSACTIONS OFF 语句关闭隐性事务模式

  【2】显式事务

    通过发出 BEGIN TRANSACTION 语句显式启动事务。

  【3】自动提交事务,默认为此项,无需设置;

    只要隐式事务和显式事务没有开启,就是自动提交事务。

  SSMS操作,右击实例-》属性-》连接

    (4.19)sql server中的事务模式(隐式事务,显式事务,自动提交事务)

【3】存储过程中的事务 XACT_ABORT

  

      SET XACT_ABORT ON是设置事务回滚的!  默认为OFF

      当为ON时,如果你存储中的某个地方出了问题,整个事务中的语句都会回滚;且不会再执行该事务内的所有语句了;
      为OFF时,只回滚错误的地方。事务内剩余的语句都会执行;
      举例:一个过程里有10行dml,执行到第5行出错。
        【1】如果为on,则直接回滚整个事务,并且报错
        【2】如果为off,则只会回滚出错的第5行,其余1-4,6-10可以正常执行并且提交保存;