数据库事务实例.doc_第1页
数据库事务实例.doc_第2页
数据库事务实例.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

什么是数据库事务?数据库事务是指作为单个逻辑工作单元执行的一系列操作。具体表现为:可以将几个sql语句作为一个整体来执行,这些sql语句当有一条执行出错时,那么所有的sql语句都将执行失败。也就是这些sql语句作为一个整体,要么全部执行成功,要么全部执行失败。使用事务能便于恢复数据,保证数据的一致性。一 事务的属性事务具有ACID属性即 Atomic原子性, Consistent一致性, Isolated隔离性, Durable永久性原子性就是事务应作为一个工作单元,事务处理完成,所有的工作要么都在数据库中保存下来,要么完全回滚,全部不保留一致性事务完成或者撤销后,都应该处于一致的状态。隔离性多个事务同时进行,它们之间应该互不干扰。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。永久性事务提交以后,所做的工作就被永久的保存下来事务实例:createprocedureTransferMoeny(FromAccountNovarchar(50),-转出账号ToAccountNovarchar(50),-转入账号MoneyCountmoney-转账金额)as-判断账号是否存在ifexists(select1from帐户表where账号=FromAccountNo)beginifexists(select1from帐户表where账号=ToAccountNo)begin-判断转出金额是否大于当前余额if(select当前余额from帐户表where账号=FromAccountNo)=MoneyCountbegin-开始转账begintransactioninsertinto存取记录表(账号,存取类型,存取金额)values(FromAccountNo,-1,MoneyCount)iferror0beginrollbacktransaction-发生错误则回滚事务,无条件退出lreturnendinsertinto存取记录表(账号,存取类型,存取金额)values(ToAccountNo,1,MoneyCount)iferror0beginrollbacktranreturnendcommittransaction-两条语句都完成,提交事务endelseraiserror(转账金额不能大于该账号的余额,16,1)endelse

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论