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语句 嵌套事务

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。