zoukankan      html  css  js  c++  java
  • 数据库中大的事物

    事物的特点: 原子性 ,一致性, 隔离性, 持久性

    事物的分类:显示事务  隐式事务  自动提交事务 

    T-sql 中使用事物的语句:

    开始事务:begin transaction

    提交事务:commit transaction

    回滚事务:rollback transaction 

    事物的例子:
    print '转账账号的余额'
    select* from AccountInfo
    declare @money money --声明一个变量来存放钱
    set @money =2000000 --转账的金额为200万
    declare @errorSum int --用于存放错误的个数
    set @errorSum =0
    --开始事务
    begin transaction
        update AccountInfo set currentMoney=currentMoney -@money
        where accountName='保利建设';
        set @errorSum =@errorSum +@@ERROR
        
        update AccountInfo set currentMoney =currentMoney +@money
        where accountName ='莱钢集团'
        set @errorSum =@errorSum +@@ERROR
    if (@errorSum <>0)
    begin
        print '转账失败'
        rollback transaction
    end
    else
    begin
        print'转账成功'
        commit transaction
    end
    ---------存储过程中使用事物--------------

     
    create proc proc_transfer
        @intoaccountName varchar(20),
        @uotaccountName varchar(20),
        @money money
    as
        if not exists (select * from AccountInfo where accountName=@intoaccountName)
        begin
            print '转账失败'
            return
        end
        if not exists (select * from AccountInfo where accountName=@uotaccountName)
        begin
            print '转账失败'
            return
        end
        declare @reeorsum int
        set @reeorsum =0
        begin transaction
        update AccountInfo set currentMoney =currentMoney - @money
        where accountName =@uotaccountName
        set @reeorsum =@reeorsum +@@ERROR
        update AccountInfo set currentMoney =currentMoney +@money
        where accountName =@intoaccountName
        set @reeorsum =@reeorsum +@@ERROR
        if(@reeorsum <>0)
        begin
            print '转账失败'
            rollback transaction
        end
        else
        begin
            print'转账成功'
            commit transaction
        end
    ------------------------------------------------ 

  • 相关阅读:
    数据结构与算法(一):初识算法和计算模型
    Flutter学习笔记(41)--自定义Dialog实现版本更新弹窗
    Mybatis-Plus简介及HelloWorld实现(附视频教程)~连载中
    “乐观锁”解决高并发下的幂等性问题(附java实测视频教程)
    git merge&rebase区别
    GIT TAG标签使用
    idea操作github远程库分支
    idea操作GIT本地库分支操作
    eclipse GIT本地库分支操作
    git分支操作命令
  • 原文地址:https://www.cnblogs.com/cl1006/p/4331451.html
Copyright © 2011-2022 走看看