崔连和_SQLServer_第10课-触发器完成稿要点详解.ppt

崔连和_SQLServer_第10课-触发器完成稿要点详解.ppt

步骤02:编写代码。步骤01完成之后,系统自动在查询编辑器窗口中生成创建触发器的模板代码及注释,这些代码和缩写的功能是架构环境和说明程序。通常不使用系统提供的语句模版,将代码全部删除,然后手动输入创建存储过程语句。 编写好后,运行程序,完成触发器的创建 步骤03:运行及验证触发器。首先查看“News”表未修改时的原表数据。 在查询编辑器窗口中输入如下语句。 然后使用数据修改语句,修改“News”表中的数据,将“ID”为“2”的记录中“Author”字段的数值改为“聂东来”,语句如下。 执行后,查看已经被修改的表中数据。如图10-3所示。 2. 触发器的作用 触发器是针对数据表(库)的特殊的存储过程,当这个表发生了 Insert、Update或Delete操作时,会自动激活执行的,可以处理各种复杂的操作。在SQL Server 2005和2008版本中,触发器有了更进一步的功能,在数据表(库)发生Create、Alter和Drop操作时,也会自动激活执行。 3. 触发器的分类 触发器分为DML触发器和DDL触发器两种。其中DML触发器又分为After触发器和Instead Of触发器两种。After触发器是先修改记录后激活的触发器;Instead Of触发器是“取代”触发器。DDL触发器根据作用范围可以分为作用在数据库的触发器和作用在服务器的触发器两种。After触发器只能用于数据表中,而Instead Of触发器即可以用在数据表中,也可以用在视图中。 4.DML触发器 DML触发器有助于数据库在修改数据的时候实施强制性规则,保证数据的完整性,其主要的功能如下。 1、可以完成比CHECK更复杂的约束要求。 2、拒绝违反引用完整性的数据操作,保证数据准确性。 3、比较表修改前后的数据变化,并根据变化采取相应操作。 4、级联修改具有关系的表。 DML触发器主要针对的操作有三种:UPDATE、INSERT、DELETE。某个表格有了触发器,只要对该表格更新、插入或删除时,就会触动对应的UPDATE、INSERT或DELETE触发器。 5.DELETED和INSERTED表 系统会自动为触发器创建两个系统临时表:DELETED和INSERTED。触发器运行过程中的所涉及的数据都根据不同的操作类型保存在相应的表中,触发器在运行过程中会在需要的时候调用其中的数据,用户也可以在需要的时候从表中调用数据。每个触发器只能调用对应表中的数据,而两个表也和相应的触发器一起存储与内存中。这两个表虽被称为表,其实并不同于一般的数据库表,他们储存在内存中,而非在磁盘上。 两个表的结构类似于定义触发器的表结构。DELETED表会储存因DELETE及UPDATE语句而受影响的行副本。当行因触发器被删除或更新时,被删除或更新的行会传送到DELETED表,触发器和用户即可以使用DELETED表中的数据。INSERTED表会储存被INSERT及UPDATE语句影响的行副本,在插入或更新事务时,新的行会同时被加至触发器表语INSERTED表。由于执行UPDATE语句时,会被视为插入或删除事务,旧的行值会保留一份副本在DELETED表中,而新的行值的副本则保留在触发器表语INSERTED表。 INSERTED和DELETED表中的值只限于在触发器中使用。一旦触发器完成就无法再使用 6.创建触发器语句 创建触发器可以使用CREATE TRIGGER语句,其语法格式如下。 参数说明: 1、 WITH ENCRYPTION:加密选项,防止触发器作为SQL Server复制的一部分发布。 2、 [DELETE] [,] [INSERT][,][UPDATE]:表示指定执行哪些语句时将激活触发器,至少要指定一个选项,若选项多于一个,需用逗号分隔各选项。 3、 IF UPDATE(字段名):测试在制定的字段上进行的INSERT或UPDATE操作,不能用于DELETE操作。对INSERT操作,测试将返回TRUE值,因为在指定字段上输入了显性值或隐性(NULL)值。若要同时对多个字段进行测试,可使用逻辑运算符链接多个UPDATE(字段名)子句。 【操作实例10-1】为“File”表创建触发器 本实例需要实现,当在“Users”表中删除某条信息的时候,用数据输出命令提示用户,并显示该条被删除的数据信息。 步骤01:触发器的创建。在查询编辑器窗口中输入如下语句。 步骤02:触发器验证。为了验证触发器的功能,在查询编辑器窗口中运行如下语句,删除“File”表中的一条数据,触发触发器,会得到如图10-4所示结果。 10.2任务二 管理D

文档评论(0)

1亿VIP精品文档

相关文档