书签 分享 收藏 举报 版权申诉 / 17
上传文档赚钱

类型《数据库》课件第8章-事务的概念及创建.ppt

  • 上传人(卖家):momomo
  • 文档编号:5900353
  • 上传时间:2023-05-14
  • 格式:PPT
  • 页数:17
  • 大小:327.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《《数据库》课件第8章-事务的概念及创建.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    数据库 课件 事务 概念 创建
    资源描述:

    1、带有输出参数的存储过程带有输出参数的存储过程存储过程调用存储过程存储过程调用存储过程写一个存储过程执行银行转账的功能,假设数据库中有账户表写一个存储过程执行银行转账的功能,假设数据库中有账户表Account(UserName,UserAccount),现要将用户,现要将用户A转账到用户转账到用户B一定的金额,一定的金额,完成存储过程。完成存储过程。create proc prcTransferOriginUser varchar(20),DesUser varchar(20),Money money As if(select UserAccount from Account where Use

    2、rName=OriginUser)=Money beginupdate Account set UserAccount=UserAccount-Money where UserName=OriginUserupdate Account Set UserAccount=UserAccount+Money where UserName=DesUser end.假设程序执行到第一个更新语句时断电假设程序执行到第一个更新语句时断电了?了?事务的概念及创建事务的概念及创建事务的概念事务的概念创建包含事务的存储过程创建包含事务的存储过程保存部分事务保存部分事务 SQL Server提供了一种叫做事务的机制

    3、,它可以保证指定提供了一种叫做事务的机制,它可以保证指定的对数据库的一系列操作作为一个整体被执行,在最终提的对数据库的一系列操作作为一个整体被执行,在最终提交操作之间,用户可以随时取消前面的操作,将数据库还交操作之间,用户可以随时取消前面的操作,将数据库还原到没有执行操作前的状态原到没有执行操作前的状态,或者操作全部完成,将所有的或者操作全部完成,将所有的操作提交到数据库。操作提交到数据库。原子性原子性:事务必须是原子工作单元。它对数据库所进行的操作,要么事务必须是原子工作单元。它对数据库所进行的操作,要么全都执行,要么全都不执行。全都执行,要么全都不执行。一致性一致性:事务在完成时,必须使所

    4、有的数据都保持一致状态。在相关事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构整性。事务结束时,所有的内部数据结构(B数索引数索引)都必须是正确的。都必须是正确的。隔离性隔离性:由并发事务所作的修改必须与任何其他并发事务所作的修改由并发事务所作的修改必须与任何其他并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的

    5、状态,事务不会查看中间之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。状态的数据。持久性持久性:事务完成之后,它对于系统的影响是永久性的。该修改即使事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。出现系统故障也将一直保持。启动事务:启动事务:BEGIN TRANSACTION 事务名事务名回滚事务:回滚事务:ROLLBACK TRANSACTION 事务名事务名提交事务:提交事务:COMMIT TRANSACTION 事务名事务名注意,注意,不能在发出不能在发出COMMIT TRANSACTION语句之后回滚事务语句之后回滚事务,因为数据修

    6、改已,因为数据修改已经成为数据库的永久部分。经成为数据库的永久部分。定义一个事务,向定义一个事务,向“学生学生”表中插入两条记录。其中,第表中插入两条记录。其中,第1条条INSERT语句是正确的,而第语句是正确的,而第2条条INSERT语句是错误的。执行此事务语语句是错误的。执行此事务语句后,查看句后,查看“学生学生”表中的数据,确认第表中的数据,确认第1条语句没有被执行。条语句没有被执行。解决方案:解决方案:create proc prcInsertStudentasbegin trybegin transactionINSERT INTO Student VALUES(A00010,And

    7、y,21,男男,Nanjing,90,1)INSERT INTO Student VALUES(A00011,mary,21,女女,Nanjing,150,1)commit transactionend trybegin catchprint 出错了出错了end catch思考:编译器执行到第二个思考:编译器执行到第二个insert语句时,会如何处理?语句时,会如何处理?Rollback transactionCREATE PROC 存储过程名存储过程名参数名参数名 参数类型参数类型,nASBEGIN TRYIF EXISTS()BEGINBEGIN TRANSACTION/执行事务语句执行事

    8、务语句COMMIT TRANSACTIONENDELSE/信息不存在信息不存在END TRYBEGIN CATCHROLLBACK TRANSACTIONEND CATCH创建事务,假设给定学号的学生将从原系转入给定的系,则相应的系总人数将创建事务,假设给定学号的学生将从原系转入给定的系,则相应的系总人数将发生变化,如果两系相差人数小于发生变化,如果两系相差人数小于10,则允许该生转系,否则回滚事务。假设,则允许该生转系,否则回滚事务。假设系表系表Department(DepID,DepName,Total)解决方案:解决方案:求出给定学号对应的原系号求出给定学号对应的原系号求出给定转入的系名

    9、对应的系号求出给定转入的系名对应的系号更新学生表中该学号对应的新系号更新学生表中该学号对应的新系号将系表中原系号对应的总人数将系表中原系号对应的总人数-1将系表中转入的系号对应的总人数将系表中转入的系号对应的总人数+1获取原系号对应的人数获取原系号对应的人数获取新系号对应的人数获取新系号对应的人数如果人数相差如果人数相差=-10 and OrginalTotal-NewTotal100BEGINROLLBACK TRANSACTION trnTransaction1commit transactionENDELSE commit transaction事务的概念事务的概念创建包含事务的存储过程创建包含事务的存储过程创建事务创建事务

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《数据库》课件第8章-事务的概念及创建.ppt
    链接地址:https://www.163wenku.com/p-5900353.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库