一:1 事务概念
事务:是作为单个逻辑工作单位执行的一系列操作,多个操作作为一个整体向系统提交,要么都执行要么都不执行,事务是不可分割的工作编辑单位
二:事务特点
原子性: 事务是一个完整的整体,事务各部操作是不可分的要么都执行 要么都不执行
一致性: 事务完成时候 数据必须保持一致一致的状态
隔离性: 多个事务之间彼此隔离、独立、互不影响。
永久性: 事务完成时候 它对数据库的修改,被永久保存
三:事务的分类
1 显式事务:通过begin transaction明确指定开启事务,最常用的事务类型
2 隐形实物:通过set transaction on 语句 把隐形的实务模式打开,其后面的sql语句将自动开启一个事务
提交或者回滚事务之后,下一个sql将开启另外一个事务
3 自动提交事务 sqlserver默认模式 每一句都可以设为一个事务
四:如何创建事务
1 开始事务:begin transaction
2 提交事务 commit transaction
3 回滚(撤销)事务 rollback transaction
五:不使用事务对于银行转账操作出现的错误 实例
use YinHangDB
go
create table Card
(
StudentId int identity(1000,1) primary key not null,
StudentName varchar(10) not null,
CurrentMoney money check(CurrentMoney>1) --添加约束 余额必须大于1
)
select * from Card
--进行转账操作
update Card set CurrentMoney = CurrentMoney - 100000 where StudentId = 1000
update Card set CurrentMoney = CurrentMoney + 100000 where StudentId = 1001
select * from Card