SQL Server 2005数据库案例教程严波电子教案 第12章触发器.pptVIP

SQL Server 2005数据库案例教程严波电子教案 第12章触发器.ppt

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十二章  数据库触发器 课程内容回顾 存储过程是一组预编译的SQL语句,可以包含数据操纵语句、逻辑控制语句或数据检索语句。 数据库开发人员或管理员可以通过编写存储过程来运行经常执行的任务、或者应用复杂的业务规则。 存储过程可提高应用程序访问数据的速度,帮助实现模块化编程,提高数据库性能和数据安全性 存储过程可分为: 系统存储过程 用户定义的存储过程 CREATE PROCEDURE 语句用于创建用户定义的存储过程。 EXECUTE 语句用于运行存储过程。 存储过程的参数分为输入参数和输出参数,输入参数用来向存储过程传入值,输出参数从存储过程中返回(输出)值。 RAISERROR语句用来向用户报告错误 本章目标 了解触发器的用途 理解触发器的工作原理 掌握如何使用inserted表和deleted表 掌握如何创建INSERT、UPDATE、DELETE触发器 触发器介绍 触发器的特点 触发器是在对表进行插入、更新或删除操作时自动执行的存储过程 触发器通过事件进行触发而被执行的 特点: 与表相关联 自动触发 不能直接调用 是事务的一部分 触发器的种类 AFTER触发器 AFTER触发器要求只有执行某一操作INSERT、UPDATE、DELETE之后触发器才被触发且只能在表上定义 INSTEAD OF触发器 可在表上定义INSTEAD OF 触发器,也可以在视图上定义INSTEAD OF 触发器 AFTER触发器 AFTER触发器包括: INSERT触发器:当向表中插入数据时触发,自动执行触发器所定义的SQL语句。 UPDATE触发器:当更新表中某列、多列时触发,自动执行触发器所定义的SQL语句。 DELETE触发器:当删除表中记录时触发,自动执行触发器所定义的SQL语句。 触发器的两个特殊表 插入表(inserted表) 删除表(deleted表): 这两个表是逻辑表,并且是由系统管理的,存储在内存中,不是存储在数据库中,因此,不允许用户直接对其修改。 inserted 和deleted 表 触发器触发时: 系统自动在内存中创建deleted表或inserted表 只读,不允许修改;触发器执行完成后,自动删除 inserted 表 临时保存了插入或更新后的记录行 可以从inserted表中检查插入的数据是否满足业务需求 如果不满足,则向用户报告错误消息,并回滚插入操作 deleted 表 临时保存了删除或更新前的记录行 可以从deleted表中检查被删除的数据是否满足业务需求 如果不满足,则向用户报告错误消息,并回滚插入操作 inserted 和deleted 表 创建触发器 语法: 触发器示例 问题:在emp表上创建一个触发器,该触发器保证每次最多只能删除一个雇员 禁用或启用触发器 用户可以禁用、启用一个指定的触发器或一个表的所有触发器 语法 示例:禁用触发器emp_delete 示例:启用触发器emp_delete 更改和删除触发器 修改触发器 语法: 删除触发器 语法: 示例:删除触发器emp_delete INSERT触发器 INSERT触发器的工作原理: INSERT 触发器示例-1 问题: 当在员工表(emp)中输入数据时,确保输入的员工工资不超过5000元人民币 分析: 在emp表上创建一个INSERT触发器CheckSal 从inserted临时表中获取插入的数据行 判断工资的值是否超过5000 INSERT 触发器示例-1 ----主要代码----- CREATE TRIGGER CheckSal ON emp FOR INSERT AS DECLARE @sal money SELECT @sal=sal FROM inserted IF @sal 5000 BEGIN PRINT 工资不能超过5000 PRINT 请将工资修改为小于5000的值 ROLLBACK TRANSACTION END … GO DELETE触发器 DELETE触发器的工作原理: DELETE 触发器示例-1 问题: 当删除雇员时,自动备份被删除的数据到表backupTable中 分析: 应在雇员表上创建DELETE触发器 被删除的数据可以从deleted表中获取 DELETE 触发器示例-1 USE empDB GO /*---检测是否存在,触发器存放在系统表sysobjects中--------*/ IF EXISTS (SELECT name FROM sysobjec

文档评论(0)

118压缩包课件库 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档