zoukankan      html  css  js  c++  java
  • ylb:事务

    ylbtech_sqlserver

    create database bank
    go
    
    use bank
    go
    
    create table users
    (
        uid int primary key identity(1,1),
        uname varchar(10) not null,
        balance float 
    )
    go
    
    insert into users values('zzl', 1000)
    insert into users values('zsy', 1000)
    
    select * from users
    
    --创建一个事物,实现zsy转账500给zzl
    /*
    update users set balance = balance + 500
    where uname = 'zzl'
    
    update users set balance = balance - 500
    where uname = 'zzz'*/
    
    BEGIN TRANSACTION
    DECLARE @n1 int
    DECLARE @n2 int
    
    update users set balance = balance + 500
    where uname = 'zzl'
    SET @n1 = @@ROWCOUNT
    
    update users set balance = balance - 500
    where uname = 'zsy'
    SET @n2 = @@ROWCOUNT
    
    IF @n1 >= 1 and @n2 >= 1
    BEGIN
        COMMIT
        PRINT '转账成功'
    END
    ELSE
    BEGIN
        ROLLBACK
        PRINT '转账失败!!'
    END
    
    select * from users
    
    --避免透支----------------------------------
    
    BEGIN TRANSACTION
    DECLARE @n1 int
    DECLARE @n2 int
    DECLARE @bal float  --保存班长支出以后的余额
    
    update users set balance = balance + 500
    where uname = 'zzl'
    SET @n1 = @@ROWCOUNT
    
    update users set balance = balance - 500
    where uname = 'zsy'
    SET @n2 = @@ROWCOUNT
    
    IF @n1 >= 1 and @n2 >= 1
    BEGIN
    /*
        COMMIT
        PRINT '转账成功'
    */
        --如果zsy-500为负,就回滚事务
        select @bal =  balance from users where uname = 'zsy'
        IF @bal < 0
        BEGIN
            PRINT '班长余额不足,转账失败'
            ROLLBACK
        END
        ELSE
        BEGIN
            PRINT '转账成功'
            COMMIT
        END
    END
    ELSE
    BEGIN
        ROLLBACK
        PRINT '转账失败!!'
    END
    
    select * from users
  • 相关阅读:
    接口,抽象类,普通类
    将svn项目导出,再导入到其他工作空间
    Ajax 与 Struts 1
    save tran tranName
    hibernate缓存机制详细分析
    sql中的group by 和 having 用法解析
    TensorBoard 实践 1
    Tensorflow 解决MNIST问题的重构程序
    在MNIST数据集,实现多个功能的tensorflow程序
    Tensorflow中的滑动平均模型
  • 原文地址:https://www.cnblogs.com/ylbtech/p/3828814.html
Copyright © 2011-2022 走看看