一、什么是事务?
能够保证数据一致的代码控制。它要么执行提交,要么回滚到事务的初始状态。
二、事务的四大特性:ACID
A - 原子性.——事务不可折开,要么都执行,要么都回滚,无中间状态。
C - 一致性.——数据前后要一致。
I - 隔离性.——事务在执行的过程中是不许外界干扰的。
D - 持久性.——存在硬盘上的。
三、事务的代码:
定义事务的开始:begin transaction
事务回滚:rollback
事务提交:commit
@@ERROR 最近一条语句是否执行成功。成功返回0,否则返回错误代号。
例如:
法一:使用@@ERROR和if判断来使用事务
declare @t int --记录累计的错误信息
set @t = 0
begin tran --启动事务
insert into Info values('p003','吴倩','0','n004','1990-8-12')
set @t = @t +@@ERROR --累计错误信息
insert into Info values('p006','张三','1','n004','1992-3-19')
set @t = @t +@@ERROR --累计错误信息
insert into Info values('p005','李四','0','n001','1991-12-24')
set @t = @t +@@ERROR --累计错误信息
if @t<> 0 --如果累计发现有错误 ,就回滚
begin
rollback
end
else --如果累计中没有发现错误,就提交
begin
commit
end
法二:使用try...catch....来使用事务
begin tran
begin try
insert into Info values('p007','王五','0','n002','1991-4-1')
insert into Info values('p009','张四','1','n004','1992-3-19')
insert into Info values('p008','李九','0','n001','1991-12-24')
commit
end try
begin catch
rollback
end catch