第12章触发器剖析.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
12.4 登录触发器 登录触发器将为响应 LOGON 事件而激发存储过程。 登录触发器将在登录的身份验证阶段完成之后且用户会话实际建立之前激发。如果身份验证失败,将不激发登录触发器。 可以使用登录触发器来审核和控制服务器会话,例如通过跟踪登录活动、限制 SQL Server 的登录名或限制特定登录名的会话数。 本章小结 本章首先介绍了触发器的特点、作用和类型,然后介绍了创建DML、DDL和登录触发器的方法和步骤。通过本章的学习,可以了解触发器的基本概念,掌握使用图形界面和代码创建、修改和删除触发器的方法。 第12章 触发器 第12章 触发器 案例1 工号 姓名 级别 工资 1 乔布斯 A 10000 2 比尔 A 10000 3 张三 B 1000 4 李四 C 100 5 王五 C 100 级别 工资 备注 A 10000 B 1000 C 100 工号 姓名 级别 工资 1 乔布斯 A 10000 2 比尔 A 10000 3 张三 B 1000 4 李四 B 100 5 王五 C 100 李四晋级后,薪水也需调整 触发器可以完成自动调整 第12章 触发器 案例2 学号 姓名 是否毕业 备注 1 乔布斯 否 2 比尔 否 3 张三 否 4 李四 否 5 王五 否 学号 选修课程 成绩 1 数据库原理 89 2 高数 83 3 数据库原理 76 删除学生时,一并删除学生的成绩信息; 触发器可以完成自动判断 12.1触发器概述 触发器就像一枚地雷,被特定事件触发时,就会发生一系列动作。 触发器实际上就是一种特殊类型的存储过程—只有在系统执行某些特定的T-SQL语句或操作时,触发器才会自动执行。 12.1触发器概述—功能 触发器的常用功能如下: 1.完成更复杂的数据约束 2.检查所做的SQL所作的操作是否允许 3.修改其它数据表里的数据 4.调用更多的存储过程 5.返回自定义的错误信息 6.更改原本要操作的SQL语句 7.防止数据表结构被更改或数据表被删除 8.审核和控制服务器会话 12.1触发器概述 触发器的类型 1.DML触发器( select、insert、update、delete触发 ) DML触发器是当数据库服务器中发生数据操作语言事件时执行的存储过程。 2.DDL触发器( create 、 drop、alter 触发) DDL触发器是在响应数据定义语言事件时执行的存储过程。DDL触发器一般用于执行数据库中管理任务。如审核和规范数据库操作、防止数据库表结构被修改等。 3.登录触发器 登录触发器将为响应 LOGON 事件而激发存储过程。与 SQL Server 实例建立用户会话时将引发此事件。 12.2 DML触发器 DML触发器的类型 1.After触发器: 这类触发器是在记录已经改变之后,才会被激活执行,它主要是用于记录变更后的处理或检查。 2.Instead Of触发器: 这类触发器一般是用来取代原本要进行的操作,在记录变更之前发生的,它并不去执行原来SQL语句里的操作,而去执行触发器本身所定义的操作。 12.2 DML触发器—两个特殊的系统表 为了保存DML操作之前的数据和操作之后的数据,系统提供了两个特殊的表。 SQL Server为每个DML触发器都定义了两个特殊的表,一个是INSERTED表,一个是DELETED表。 这两个表是建在数据库服务器的内存中的,是由系统管理的逻辑表,而不是真正存储在数据库中的物理表。对于这两个表,用户只有读取的权限,没有修改的权限。 这两个表的结构与触发器所在数据表的结构完全一致,当触发器的工作完成之后,这两个表也将会从内存中删除。 12.2 DML触发器—两个特殊的系统表 对于插入记录操作来说, INSERTED表里存放的是要插入的数据; 对于更新记录操作来说, INSERTED表里存放的是更新后的记录。 对于更新记录操作来说, DELETED表里存放的是更新前的记录; 对于删除记录操作来说, DELETED表里存入的是被删除的旧记录。 12.2 DML触发器—用T-SQL语言创建触发器 1.创建AFTER触发器的语法如下: CREATE TRIGGER [schema_name.]trigger_name ON { table | view } [WITH ENCRYPTION|EXECUTE AS CALLER|SELF|user] {FOR|AFTER} {[INSERT][,][UPDATE][,][DELETE]

文档评论(0)

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

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

1亿VIP精品文档

相关文档