网站大量收购独家精品文档,联系QQ:2885784924

数据库第15章实现触发器.ppt

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库第15章实现触发器

第15章 实现触发器 触发器介绍 定义触发器 触发器的工作过程 触发器示例 性能考虑 推荐操作 触发器介绍 触发器 触发器的优点 使用触发器的考虑事项 触发器 触发器是一类特殊的存储过程,不能被直接调用,也不传递或接受参数 在指定的表中的数据发生变化时自动生效 响应 UPDATE、INSERT 或 DELETE 语句 触发器可以查询其他表,包含复杂的T-SQL语句 触发器及触发它的语句被视为单个事务,可以在触发器内的任何地方被回滚 触发器的优点 在数据库中的相关表上实现级联更改 在数据库的相关表上使用触发器可实现级联更新或删除 强制比 CHECK 约束更复杂的数据完整性 和 CHECK 约束不同,触发器可以引用其他表中的列 触发器可以比较数据修改前后的表状态,并根据其差异采取对策 定义用户定制的错误信息 通过使用触发器,可以在特定条件出现时调用预定义或动态定义的定制错误信息 使用触发器的考虑事项 约束最先被检查 如果触发器表上存在约束,则它们在触发器执行之前被检查。如果违反了约束,则触发器不执行 表对同一动作可以有多个触发器 SQL Server 2000 允许在单个表上多个触发器的嵌套。一个表上可以有多个触发器,每个触发器可以定义为单个动作或多个动作 表的拥有者可以使用系统存储过程 sp_settriggerorder指定表上第一个和最后一个执行的触发器 使用触发器的考虑事项(续) 必须具有执行触发器内所有语句的权限 只有表的拥有者、sysadmin 固定服务器角色和 db_owner 与 db_ddladmin 固定数据库角色的成员能创建和删除那个表的触发器。权限不能被转让 不能在临时表或系统表上创建触发器,但触发器可以引用临时表 触发器可以包含返回结果集的语句,但不建议这么做 触发器的定义语句中可以包括 ROLLBACK TRANSACTION 语句,即使没有显式的 BEGIN TRANSACTION 语句 第15章 实现触发器 触发器介绍 定义触发器 触发器的工作过程 触发器示例 性能考虑 推荐操作 定义触发器 触发器的种类 创建触发器 更改和删除触发器 触发器种类 从触发器执行时间上来分 AFTER触发器(FOR触发器) 在INSERT、UPDATE 或 DELETE 语句执行后触发 INSTEAD OF 触发器 取消触发动作,执行替代操作 创建触发器 创建触发器 其信息插入 sysobjects 和 syscomments 系统表中 用sp_depends,sp_helptext,sp_helptrigger查看信息 更改和删除触发器 更改触发器 语法:ALTER TRIGGER 触发器名 …… 使用新的定义代替触发器原有的定义,触发动作也可以更改 由于延迟名称解析,触发器可以引用触发器定义时不存在的表,但是创建触发器时会收到一条警告信息 禁用或启用触发器 语法:ALTER TABLE 表名 { ENABLE | DISABLE } TRIGGER {ALL | 触发器名 [, …n] } 更改和删除触发器(续) 删除触发器 语法:DROP TRIGGER 触发器名 若关联表被删除,则触发器自动删除 只有表的拥有者具有删除触发器的权限,且权限不可转移。但是 sysadmin 和 db_owner 角色的成员可以通过在 DROP TRIGGER 语句中指定拥有者的方式来删除触发器 第15章 实现触发器 触发器介绍 定义触发器 触发器的工作过程 触发器示例 性能考虑 推荐操作 触发器的工作过程 INSERT 触发器的工作过程 DELETE 触发器的工作过程 UPDATE 触发器的工作过程 INSTEAD OF 触发器的工作过程 INSERT 触发器的工作过程 INSERT 触发器的工作过程 在定义了 INSERT 触发器的表上执行 INSERT 语句 INSERT 语句插入的行被记录下来 触发器动作被执行 inserted 表 触发 INSERT 触发器时,新行被同时增加到触发器表和 inserted 表中 inserted 表是保存了插入行的副本的逻辑表,它并不实际存在于数据库中,而在缓存中 inserted 表允许用户引用 INSERT 语句所插入的数据,这样触发器可以根据具体数据决定是否执行以及如何执行特定语句 INSERT 触发器的工作过程(续) DELETE 触发器的工作过程 DELETE 触发器的工作过程 在定义了 DELETE 触发器的表上执行 DELETE 语句 DELETE 语句删除的行被记录下来 触发器动作被执行 deleted 表:和 inserted 表类似 触发 DELETE 触发器时,被删除的行放入 deleted 表中 deleted 表是保存了被删除

文档评论(0)

mmrs369 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档