第15章 事务与触发器.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第15章 事务与触发器

第 15 章 事务与触发器 事务 触发器 一 事务 1. 数据完整性的有效保证。 2. 定义:事务是用户定义的一个操作集合;这些操作要么全部执行,要么全部都不执行,是一个不可分割的单位。 3. 事务的开始与结束:显示事务以begin transaction开始;事务一定以commit (正常结束)或 rollback(异常结束) 结束;上一个事务的结束也就是下一个事务的开始。 二 事务的特性(ACID) 原子性:事务是数据库的逻辑工作单位,事务中的操作要么全做,要么全部都不做,是一个不可分割的单位。 一致性:一个事务独立执行的结果,应保持数据库的一致性。 隔离性:事务的隔离性是指数据库中一个事务的执行不能被其他事务干扰。 持久性:一个事务一旦完成全部操作,其对数据库的操作应就永久地保留在数据库中了,不会丢失。 三 事务的分类 自动提交事务:每一条对数据的增加、删除、修改语句自动地构成了一个事务。 显示事务:用户定义,有显示的开始与结束标志。开始 begin transaction,结束commit(正常结束) 或 rollback(异常结束) 。 隐式事务:事务的开始时隐式的,以前一个事务的结束后的第一条SQL语句作为下一个事务的开始,结束一定是显示的。 触发器--数据完整性的保证 定义:触发器是一个能由系统自动执行的一种特殊的存储过程。其目的是有效保证系统数据的完整性。 组成:事件、条件、动作。 事件:是指对表的插入、删除、修改等操作;事件发生,触发器开始工作。 条件:触发器将测试条件是否成立;条件成立,则执行相应的动作,否则,不执行。 动作:执行相应的存储过程。 创建触发器 Create Trigger 触发器名 On 表名 { For | After | Instead of } {[Insert],[Delete],[Update]} As SQL语句。 特殊的临时表 Inserted表(准备插入的数据)与Deleted(准备删除的数据)表 由系统创建,在触发器工作期间可用。 Inserted表用于存储Insert和Update语句所影响的行的副本。 Deleted表用于存储Delete和Update语句所影响的行的副本。 ? 例1.增加计算机系学生时,显示‘计算机系学生’ Create trigger t_st_add On student For Insert As Begin declare @sname varchar(10) Select @sname=sdept from inserted If @sname=‘计算机系’ print ‘计算机系学生’ end 例2.增加学生时,自动增加一条选课‘c02’的选课信息。 Create trigger t_st_add1 On student For Insert As Begin declare @sno char(10) select @sno=sno from inserted insert into sc(sno,cno) values(@sno,’c02’) end 例3.限制将sc表中的不及格成绩改成及格。 Create trigger t_st_xs On sc For Update As Begin declare @g1,@g2 if Update(grade) begin select @g1=grade from inserted select @g2=grade from deleted if @g260 then if @g1=60 then rollback end End 修改触发器 Alter Trigger 触发器名 On 表名 { For | After | Instead of } {[Insert],[Delete],[Update]} As SQL语句。 删除触发器 Drop Trigger 触发器名 * * *

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档