【SQL Server】创建与使用事务

事务的特性

  • 原子性:事务是一个完整的操作,事务的各步操作时不可分的,要么都执行,要么都不执行。
  • 一致性:当事务完成时,数据必须处于一致状态。
  • 隔离性:并发事务之间彼此隔离、独立,它不应以任何方式依赖与或影响其他事务。
  • 永久性:事务完成后,它对数据库的修改被永久保存。

事务分类

  • 显式事务
    用BEGIN TRANSACTION明确指定事务的开始。
    最常用的事务类型

  • 隐式事务
    通过设置SETIMPLICIT_TRANSACTIONS ON 语句,将隐性事务模式设置为打开。
    其后T-SQL语句自动启动一个新事务。
    提交或回滚一个事务后,下一个T-SQL语句又将启动一个新事务。

  • 自动提交事务
    SQL Server的默认方式。
    每条单独的SQL语句被视为一条事务。

如何使用事务

  • 开始事务
 BEGIN TRANSACTION
  • 提交事务
COMMIT TRANSACTION
  • 回滚事务
ROLLBACK TRANSACTION

一旦事务提交或回滚,则事务结束

  • 事务示例
use StudentManager
go
declare @errorSum int
set @errorSum=0
begin transaction
    begin
    。。。update/insert/delete语句
    update CardAccount set CurrentMoney = CurrentMoney-1000 where StudentId = 100001
    set @errorSum=@errorSum+@@ERROR
    update CardAccount set CurrentMoney = CurrentMoney+1000 where StudentId=100002
    set @errorSum=@errorSum+@@ERROR
        if(@errorSum>0)
            rollback transaction
        else
            commit transaction
    end
go

猜你喜欢

转载自blog.csdn.net/Maybe_ch/article/details/82691630