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

S21--SQL程序设计5(触发器).ppt

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

* * 数据库原理及应用 SQL程序设计5—触发器 一。触发器介绍: 1。触发器概念 触发器是一个被指定关联到一个表的数据对象,是一种特殊的存储过程,但触发器不需要调用,当对应的特别事件出现时,它就会被激活。 2。触发器的作用:保护表中的数据 1)可用于数据约束、默认值、规则的完整性检查 2)保证数据的完整性、一致性, 3)允许用户在保持数据完整性的前提下才能表中数据进行修改操作。 3。触发器的分类 1)DML触发器。当对数据库中对象进行数据操纵语言DML(UPDATE,INSERT,DELETE等)操作时,所触发的事件 2)DDL触发器。当对数据库进行DDL(CREATE、ALTER、DROP等)操作时,所触发的事件。 二。触发器的建立 语法格式: CREATE TRIGGER 触发器名 ON { 表或视图名} /*指定操作对象*/ [ WITH ENCRYPTION ] /*说明是否采用加密方式*/ { FOR |AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] } [ WITH APPEND ] [ NOT FOR REPLICATION ] /*说明该触发器不用于复制*/ AS { sql_statement [ ; ] [ ...n ] | EXTERNAL NAME asse MBly_name.class_name.method_name } 语法格式简化说明: CREATE TRIGGER 触发器名 ON { …指定操作对象名: 表或视图名} { FOR {…指触发条件:由什么操作激活触发器}} AS {… 触发器激活后,所执行的语句块 } 例: 对SCHOOL数据库中的学生表STUDENT,建立一个触发器TR1, 要求在对表进行修改或删除数据时,激活触发器,显示不允许对其进行操作的提示. USE SCHOOL GO CREATE TRIGGER TR1 ON STUDENT FOR INSERT,UPDATE,DELETE AS PRINT ‘不能对其表数据进行插入,修改或删除’ GO 验证1:插入数据,修改数据并查看触发器TR1的执行结果 USE SCHOOL GO INSERT INTO STUDENT(SNO,SNAME,SSEX,SGZ) VALUES(044,刘家乐,F,900) GO GO UPDATE STUDENT SET SGZ=SGZ+100 WHERE SNAME=‘刘德华’ GO 【例7.10】 创建一个表table1,其中只有一列a。在表上创建一个触发器,每次插入操作时,将变量@str的值设为“TRIGGER IS WORKING”并显示。 USE PXSCJ GO CREATE TABLE table1 (a int) GO CREATE TRIGGER table1 ON table1 AFTER INSERT AS BEGIN DECLARE @str char(50) SET @str=TRIGGER IS WORKING PRINT @str END 向table1中插入一行数据: INSERT INTO table1 VALUES(10) 执行结果如下: 三。触发器的删除 格式: DROP TRIGGER 触发器名 例: 删除TR3 USE SCHOOL GO DROP TR3 GO 四。INSERTED表与DELETED表的应用 (重点难点) 在触发器事件被激活时,会产生两个临时表: INSERTED表及DELETED表 这两张表的功能: 用来测试某些数据修改的效果及设置触发器操作的条件. 不能对这两和表中的数据进行更改. DELETED表: 存储DELETE和UPDATE操作所影响行的副本.当要用触发器删除表中某一行时,表中要删除的行被传到了DELETED表中. INSERTED表: 存储INSERT和UPDATE操作所影响行的副本.当一个插入或更新事务处理中,新建的行被同时添加到INSERTED表及触发器表中. INSERTED临时表的应用(保证表的

文档评论(0)

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

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

1亿VIP精品文档

相关文档