第15存储过程与触发器.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
An Introduction to Database System 下课了。。。 检查,或实现比较复杂的安全措 施,比如将操作某一表的用户名字 和时间记录到另一表内,使用列约 束就无法做到,此时使用触发器是 最有效的方法。 二、触发器的类别 1、AFTER触发器   AFTER触发器是指基本的数 据维护触发器,一般情况下,对表 数据有插入、修改和删除三种操 作,因此AFTER触发器也分为三 种类型即INSERT触发器、 UPDATE触发器和DELETE触发 器,它们属于SQL Server传统的 触发器,有以下特点: (1)AFTER触发器只能在表中 创建。 (2)在指定操作成功执行后触 发,即由一个操作动作而触发。 (3)如果子表因层叠的更新或删 除操作而修改,则子表上的AFTER 触发器都要被触发。如主表的一行 被删除,其相关子表的相应行也将 被层叠删除,子表上的AFTER触 发器会被触发。 (4)如果触发器表存在约束,则 在AFTER触发器执行之前先检查 这些约束,如果违反了约束,则不 执行AFTER触发器。 2、INSTEAD OF触发器 INSTEAD OF触发器是SQL Server中引入的一种新的触发 器,有以下特点: (1)INSTEAD OF触发器可以 在表或索引视图中创建。 (2)INSTEAD OF触发器由触 发语句触发,并指定用触发器中的 操作代替触发语句的操作。 (3)由于层叠更新而修改表数据不会触发INSTEAD OF触发器, 如果一个表的外键在DELETED和 UPDATE操作上定义了级联,则 不能在该表上定义INSTEAD OF 触发器。 (4)如果触发器表存在约束,则 在INSTEAD OF触发器执行之后 检查这些约束,如果违反了约束, 则回滚INSTEAD OF触发器操作。 三、创建触发器 (一)创建触发器命令   使用CREATE TRIGGER命令创 建触发器,其常用的命令格式为: CREATE TRIGGER trigger_name ON{table | view} /*指定触发器名及操作对象*/ [WITH ENCRYPTION] /*指定用加密方式*/ {{FOR | AFTER | INSTEAD OF }{[DELETE][,][INSERT][,] [UPDATE]}/*定义触发器类型*/ [NOT FOR REPLICATION] /*说明触发器不用于复制*/ sql_statement /*一条或多条SQL语句*/ } 参数说明如下: trigger_name为触发器名,可以 包含触发器所有者名,触发器是数 据库对象,在整个数据库中其名字 必须是唯一的。table和view 为 执行触发器的表或视图,也称为触 发器表,触发器是表定义的组成部 分,因此必须说明它是属于哪个表 或视图的。table和view也可以包 含表或视图的所有者名。 WITH ENCRYPTION子句表示触发器 采用加密方式,使用该关键字可防 止别人查看该触发器内容,防止将 该触发器作为SQL Server复制的 部分发布。 AFTER与INSTEAD OF关键字指定触 发器的类型,默认为AFTER触发 器。ALTER触发器只能在表上定 义,不能在视图上定义,INSTEAD OF触发器可以在表或一般视图上 定义。 WITH CHECK OPTION子句的视图上 定义。 DELETE、INSERT和UPDATE关键字 用于指定在表或视图上执行删除、 插入和修改操作时将激活相应触发 器。必须指定一项,可以指定多项组合,项之间用逗号隔开。 NOT FOR REPLICATION子句表示该 触发器对于数据库复制无效。 sql_statement为触发器代码,由 一条或多条SQL语句组成,但下列 SQL语句不能在触发器内使用: CREATE TRIGGER AFTER TRUNCATE TABLE DROP UPDATE STATISTICS RECONFIGURE LOAD DATABASE、LOAD LOG、LOAD TRANSACTION RESTORE DATABASE、 RESTORE LOG DISK INIT、DISK RESIZE 触发器中可以指定任意的SET语 句,其中SET选项只在触发器执行 期间有效,触发器执行后恢复到以 前的设置。   该语句的使用权限默认属于触 发器表的所有者、db_owner数据 库所有者、db_ddladmin固定数据 库角色成员和sysadmin固定服务 器角色成员。 (二) DELETED表和INSERTED表   触发器代码最强大的功能之一 是能够比较记录行的新旧

文档评论(0)

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

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

1亿VIP精品文档

相关文档