博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库中大的事物
阅读量:6068 次
发布时间:2019-06-20

本文共 1539 字,大约阅读时间需要 5 分钟。

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

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

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
------------------------------------------------ 

转载于:https://www.cnblogs.com/cl1006/p/4331451.html

你可能感兴趣的文章
想说一点东西。。。。
查看>>
css知多少(8)——float上篇
查看>>
NLB网路负载均衡管理器详解
查看>>
水平添加滚动条
查看>>
PHP中”单例模式“实例讲解
查看>>
VS2008查看dll导出函数
查看>>
VM EBS R12迁移,启动APTier . AutoConfig错误
查看>>
atitit.细节决定成败的适合情形与缺点
查看>>
iOS - Library 库
查看>>
MATLAB 读取DICOM格式文件
查看>>
spring事务管理(Transaction)
查看>>
django.contrib.auth登陆注销学习
查看>>
js执行本地exe文件的3种方法
查看>>
理解B树索引
查看>>
vi编辑器的命令集合
查看>>
Mysql利用binlog恢复数据
查看>>
解决 Windows启动时要求验证
查看>>
我的友情链接
查看>>
用yum安装mariadb
查看>>
一点IT"边缘化"的人的思考
查看>>