数据库事务实例.doc

数据库事务实例.doc

ID:60906751

大小:27.00 KB

页数:3页

时间:2020-02-04

数据库事务实例.doc_第1页
数据库事务实例.doc_第2页
数据库事务实例.doc_第3页
资源描述:

《数据库事务实例.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、什么是数据库事务?数据库事务是指作为单个逻辑工作单元执行的一系列操作。具体表现为:可以将几个sql语句作为一个整体来执行,这些sql语句当有一条执行出错时,那么所有的sql语句都将执行失败。也就是这些sql语句作为一个整体,要么全部执行成功,要么全部执行失败。使用事务能便于恢复数据,保证数据的一致性。一事务的属性事务具有ACID属性即Atomic原子性,Consistent一致性,Isolated隔离性,Durable永久性原子性就是事务应作为一个工作单元,事务处理完成,所有的工作要么都在数据库中保存下来,要么完全回滚,全部不保留一致性事务完成或者撤销后,都应该处于一致的状态。隔离性多

2、个事务同时进行,它们之间应该互不干扰。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。永久性事务提交以后,所做的工作就被永久的保存下来事务实例:create procedure TransferMoeny(    @FromAccountNo varchar(50),-- 转出账号    @ToAccountNo varchar(50),--转入账号    @MoneyCount money--转账金额)as--判断账号是否存在if exists (select 1 from 帐户表 where 账号 = @

3、FromAccountNo) begin    if exists (select 1 from 帐户表 where 账号 = @ToAccountNo)     begin        --判断转出金额是否大于当前余额        if (select 当前余额 from 帐户表 where 账号 = @FromAccountNo) >= @MoneyCount        begin            --开始转账            begin transaction            insert into [存取记录表] ([账号],[存取类型], [存取金额

4、]) values(@FromAccountNo, -1,@MoneyCount)            if @@error <> 0            begin                rollback transaction--发生错误则回滚事务,无条件退出l                return            end                       insert into [存取记录表] ([账号],[存取类型], [存取金额]) values(@ToAccountNo, 1,@MoneyCount)            if @@err

5、or <> 0            begin                rollback tran                return            end            commit transaction --两条语句都完成,提交事务        end        else                raiserror ('转账金额不能大于该账号的余额',16,1)    end    else    raiserror ('转入账号不存在',16,1)endelse    raiserror ('转出账号不存在',16,1)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。