zoukankan      html  css  js  c++  java
  • SQL Server(九)——事务

    事务:

    保障流程的完整执行,就像银行取钱,先在你账上扣钱,然后存入别人的账上;但是从你账上扣完钱了,突然网断了,对方没有收到钱,那么此时你的钱也没了,别人的钱也没加上,事务为了防止此类情况的出现。

    事务的基本格式:

    begin tran --在流程开始的位置

     

    if @@ERROR>0

    begin  

    rollback tran --回滚事务,到begin tran的位置,就当没发生过

    end

    else

    begin  

    commit tran --提交事务,都没问题,那么就一把进行提交

    end

    例题:购物车实例

    begin tran --开启事务
    declare @tran_error int; --存储错误
    set @tran_error = 0; --默认没有错误
    
    update Fruit set Numbers = Numbers-1 where Ids='k002'
    set @tran_error = @tran_error + @@ERROR;
    update Login set Account=Account-1 where UserName='wangwu'
    set @tran_error = @tran_error + @@ERROR;
    insert into Orders values('d002','wangwu','2016-8-7')
    set @tran_error = @tran_error + @@ERROR;
    insert into OrderDetails values('d002','k002',10)
    set @tran_error = @tran_error + @@ERROR;
    
    
    if @tran_error>0
    begin
        rollback tran --回滚事务,到begin tran的位置,就当没发生过
    end
    else
    begin
        commit tran --提交事务,都没问题,那么就一把进行提交
    end
    View Code

     注:例题里面用到了SQL Server中一个自带的变量——ERROR,表示若上面的语句正确,@@ERROR=0;相反不等于0.

  • 相关阅读:
    http缓存机制与原理
    BFC与浮动
    05ICMP协议与ARP协议(IP协议中重要协议)
    04IP编址(网络层)
    03以太网帧结构(链路层 IEEE802.3)
    02传输介质简介
    shell 脚本 2
    shell 脚本 1
    shell 中时间 表达
    sed 行编辑器
  • 原文地址:https://www.cnblogs.com/H2921306656/p/5752349.html
Copyright © 2011-2022 走看看