码迷,mamicode.com
首页 > 数据库 > 详细

SQL数据库—<…>事务--简单学习

时间:2015-06-01 13:04:11      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:

事务


  • 一、什么是事务
    能够保证数据的一致性的代码控制,要么执行提交,要么滚回事务的初始状态
  • 二、事务的四大特性: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语句 嵌套事务

SQL数据库—<…>事务--简单学习

标签:

原文地址:http://www.cnblogs.com/ooip/p/4543488.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!