第10章-触发器的用法.ppt

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* SQL SERVER 2000数据库管理与开发 首页 上页 目录 前页 后页 末页 * * * * 第10章 触 发 器 内容简介 本章学习要点 本章将介绍SQL Server 2008中的触发器类型,以及不同类型的触发器的创建方法。另外,还介绍如何管理触发器,对触发器的管理包括修改、删除、启用和禁用等操作。 了解触发器的作用与类型。 熟练掌握如何创建与使用各种类型的触发器。 了解嵌套触发器。 了解递归触发器。 掌握如何修改与删除触发器。 掌握如何禁用与启用触发器。 触发器的概念 触发器是一种特殊的存储过程,其特殊性在于它并不需要由用户来直接调用,当对表进行插入、删除、修改等操作时自动执行。 触发器是一段能自动执行的程序。当对表进行insert、delete、update等操作时自动执行。 触发器不允许使用参数,也不允许被调用。 触发器的优点 实现数据库中多张表的级联修改。 实现比check约束更复杂的约束。 检查修改前后表中数据的不同。 使对表的修改合乎业务规则。 在SQL Server 2008中按照触发事件的不同可以把触发器分成两大类型。 DML触发器 DDL触发器 SQL Server触发器的类型 DML触发器可通过数据库中的相关表实现级联更改 DML触发器可以防止恶意或者错误的INSERT、UPDATE以及DELETE操作,并强制执行比CHECK约束定义的限制更为复杂的其他限制 DML触发器可以评估数据修改前后表的状态,并根据该差异采取措施 DML触发器是指当数据库服务器中发生数据操作语言(DML)事件时要执行的操作。通常所说的DML触发器主要包括三种:INSERT触发器、UPDATE触发器、DELETE触发器。 deleted表 用于存放对表执行UPDATE或DELETE操作时,要从表中删除的所有行。 inserted表 用于存放对表执行INSERT或UPDATE操作时,要向表中插入的所有行。 SQL Server 2008为每个DML触发器语句创建两种特殊的表:deleted表和inserted表。这是两个逻辑表,由系统自动创建和维护,存放在内存而不是数据库中,用户不能对它们进行修改。 DML触发器 要防止对数据库架构进行某些更改 希望数据库中发生某种情况以响应数据库架构中的更改 要记录数据库架构中的更改或者事件 DDL触发器是指当服务器或者数据库中发生数据定义语言(DDL)事件时将被调用。如果要执行以下操作,可以使用DDL触发器: DDL触发器 DML触发器 DDL触发器 嵌套触发器 递归触发器 创建触发器 FOR|AFTER|INSTEAD OF 用于指定触发器触发的时机 DELETE|INSERT|UPDATE 用于指定在表或者视图上执行哪些数据修改语句时将触发触发器的关键字 sql_statement 用于指定触发器所执行的Transact-SQL语句 DML触发器 create trigger [拥有者.]触发器名 on [拥有者.]{表名|视图名} for | after | instead of [insert, update, delete] [with encryption] as SQL语句 触发器的触发方式   SQL Server 2008按触发器被激活的时机可分为后触发和替代触发两种触发方式。   引起触发器执行的修改语句若违反了某种约束,后触发方式不会激活触发器,替代触发方式会激活触发器。 后触发   当引起触发器执行的修改语句执行完成,并通过各种约束检查后,才执行触发器,这种触发方式称为后触发。   创建这种触发器使用after或for关键字。   后触发只能创建在表上,而不能创建在视图上。 替代触发   当引起触发器执行的修改语句停止执行,仅执行触发器,这种触发方式称为替代触发。   创建这种触发器使用instead of关键字。   替代触发可创建在表上,也可以创建在视图上。 激活触发器时的临时表 每个触发器被激活时,系统都为它自动创建两个临时表:inserted表和deleted表。 这两个表的结构与被激活触发器的表结构相同。 触发器执行完成后,这两个表将被自动删除。 1.创建INSERT触发器 2.创建DELETE触发器 3.创建UPDATE触发器 INSERT触发器在对定义触发器的表执行INSERT语句时被执行。创建INSERT触发器,需要在CREATE TRIGGER语句中指定AFTER INSERT选项。 使用DELETE触发器时,需要考虑以下的事项和原则: 当某行被添加到deleted表中时,该行就不再存在于数据库表中,因此deleted表和数据库表没有相同的行。 创建deleted表时空间从内存中分配,且

文档评论(0)

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

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

1亿VIP精品文档

相关文档