SQL数据库—<…>事务--简单学习
事务
- 一、什么是事务
能够保证数据的一致性的代码控制,要么执行提交,要么滚回事务的初始状态 - 二、事务的四大特性:ACID
A:原子性-------事务不可拆开,要么执行要么回滚无中间状态
C:一致性-------数据前后一致性
I:隔离性-------事务在执行的过程中是不予许外界干扰的
D:持有性-------存在硬盘上的
开始事务:begin transaction 或者 begin tran 或者 start transaction [事务名]
提交事务:commit[事务名]
回滚事务:rollback
@@error :返回上一个SQL语句的错误代号 ,没错误返回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....来使用事务
--try...catch....语句 begin try ...--不出错执行这里的语句 end try begin catch ...--如果出错执行这里的语句 end 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
其他方法:可以使用if语句 嵌套事务
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。