触发器的创建.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
设计触发器 触发器 主要内容: 触发器的作用、类型和执行原理。 触发器的创建、修改和删除 触发器的测试。 设计触发器。 重点: 触发器的作用、类型和执行原理、触发器的创建、修改、删除和测试 触发器 难点: 维护复杂业务规则的触发器、嵌套触发器、约束与触发器的触发顺序。 教学目标 理解掌握触发器的作用、类型和执行原理; 操作掌握各种触发器的创建、修改、测试与删除; 触发器 引入: 如何在任何时刻录入某一学生的成绩达到90分以上时(无须知道学生的具体学号),自动触发在学生操行记录表上增加附加分为1 ? 演示案例系统软件执行应用了触发器的功能,并查看编程代码和触发器内容 触发器 触发器:是当数据表内容被更改时,会自动执行的一类特殊的存储过程. 触发器的类型:AFTER触发器和INSTEAD OF触发器 触发操作:INSERT、UPDATE和DELETE 触发器 触发器中使用的特殊临时表: Inserted表:当向表中插入数据时,INSERT触发器触发执行,新的记录插入到触发器表和inserted表,保存受INSERT和UPDATE触发影响的记录。 触发器 deleted表:用于保存已从表中删除的记录,当触发一个DELETE触发器时,被删除的记录存放到deleted表中。保存受DELETE和UPDATE触发影响的记录。 UPDATE触发器:修改一条记录等于插入一条新记录,同时删除旧记录。表中被修改的原记录移到deleted表,修改过的记录插入到触发表和inserted表。 deleted表和inserted表检索方法与数据库表的方法相同,但不能对这两个表中进行直接修改。 触发器的创建 用企业管理器: 操作:单击所需表右键的“所有任务”-“管理触发器” 用SQL命令创建: 语法: CREATE TRIGGER 触发器名 ON 表名|视图名 [WITH ENCRYPTION] –采用加密方式 {FOR|AFTER|INSTEAD OF} {DELETE [,][INSERT][,][UPDATE]}品—定义触发器的类型 [NOT FOR REPLICATION]—触发器不用于复制 AS [IF UPDATE(字段名) [{AND|OR} UPDATE(字段名)] […n] ] SQL语句[…n] --一条或多条SQL语句 触发器的创建 例11.1.1:在“学生成绩”数据库中建立一个INSERT触发器,名为insertscore_trig,在向“学生信息”中插入一条学生记录时将引发该触发器,从而实现向“选课表”中插入两条记录的操作,并显示“…的信息成功插入”。 解决: USE 学生成绩 GO 触发器的创建 CREATE TRIGGER insertscore_trig1 ON 学生信息--创建触发器 FOR INSERT AS SET NOCOUNT ON--避免返回任何结果信息”n行受影响” DECLARE @no int SELECT @no=学号 FROM inserted INSERT INTO 选课表(学号,课程号) VALUES(@no,001) INSERT INTO 选课表(学号,课程号) VALUES(@no,002) print cast(@no as varchar)+‘的信息成功插入’ GO 触发器的创建 --测试触发器: INSERT INTO 学生信息(学号,姓名,性别,专业号) VALUES(2001014,张品, 女,00312) SELECT * FROM 选课表 触发器的创建 例11.1.2:在“学生成绩”数据库中建立一个DELETE触发器,其名称为delscore_trig,存储在“学生表”中。当从“学生表”中删除一个学生记录时引发该触发器,从“成绩表”中删除这个学生的成绩记录 USE 学生成绩 GO CREATE TRIGGER delscore_trig ON 学生表 —创建触发器 FOR DELETE AS DELETE FROM 成绩表 WHERE 学号=(SELETE 学号 FROM deleted) 触发器的创建 GO DELETE FROM 学生表 WHERE 学号=2001 --测试触发器: SELETE * FROM 成绩表 WHERE 学号=2001 注:在“学生表”和“成绩表”间没有外键约束时才可进行这个触发。 触发器的创建 例11.1.3:在“学生成绩”数据库中建立一个DELETE触发器,其名称为delscore_tr

文档评论(0)

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

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

1亿VIP精品文档

相关文档