【SQL Server】创建与使用事务

2024-04-23 19:01:50 浏览数 (2)

事务的特性

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

事务分类

  • 显式事务 用BEGIN TRANSACTION明确指定事务的开始。 最常用的事务类型
  • 隐式事务 通过设置SETIMPLICIT_TRANSACTIONS ON 语句,将隐性事务模式设置为打开。 其后T-SQL语句自动启动一个新事务。 提交或回滚一个事务后,下一个T-SQL语句又将启动一个新事务。
  • 自动提交事务 SQL Server的默认方式。 每条单独的SQL语句被视为一条事务。

如何使用事务

  • 开始事务
代码语言:javascript复制
 BEGIN TRANSACTION
  • 提交事务
代码语言:javascript复制
COMMIT TRANSACTION
  • 回滚事务
代码语言:javascript复制
ROLLBACK TRANSACTION

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

  • 事务示例
代码语言:javascript复制
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

0 人点赞