文档详情

SQL Server2000实验指导NEW实验9触发器.ppt

发布:2017-05-09约字共20页下载文档
文本预览下载声明
* 实验 9 触发器 在SQL Server中,触发器同存储过程一样重要,它们都是用Tranact-SQL 语言所编写的程序。通过本实验来学习、掌握触发器的创建、修改、删除、执行的方法。 【知识要点】 1.触发器(Trigger) 触发器(trigger)是一种特殊类型的存储过程,它也是用Tranact-SQL 语言编写的程序。 存储过程是由用户利用命令EXECUTE执行它,而触发器是在用户要对某一表内的数据做插入INSERT、更新UPDATE、删除DELETE时被触发执行。通常我们使用触发器来检查用户对数据库表的更新是否合乎整个应用系统的需求和合乎商业规则以维持表内数据的完整性和正确性。 2.触发器的作用 (1)触发器可通过数据库中的相关表实现级联更改。 通过级联引用完整性约束可以更有效地执行这些更改。 (2)触发器可以强制比用 CHECK 约束定义的约束更为复杂的约束。 与CHECK 约束不同,触发器可以引用其它表中的列。 例如,触发器可以使用另一个表中的 SELECT 比较插入或更新的数据,以及执行其它操作,如修改数据或显示用户定义错误信息。 实验 9 触发器 触发器的主要好处在于它们可以包含使用 Transact-SQL 代码的复杂处理逻辑。因此,触发器可以支持约束的所有功能 (3)触发器也可以评估数据修改前后的表状态,并根据其差异采取对策。 (4)一个表中的多个同类触发器(INSERT、UPDATE 或 DELETE)允许采取多个不同的对策以响应同一个修改语句。 3.触发器类型 UPDATE INSERT DELETE 4.创建触发器的SQL语句 CREATE TRIGGER 触发器名 ON { 表名 | 视图名 } { ????{{ FOR |AFTER|INSTEAD OF }{[INSERT] [,UPDATE ] [,DELETE ]} ????AS ???? ????[{ IF UPDATE( 列名 )[{ AND | OR } UPDATE( 列名 ) ]?[ ...n ]???}] ???????SQL语句 [ ...n ] ???} } 实验 9 触发器 5.修改触发器的SQL语句 ALTER TRIGGER 触发器名 ON { 表名 | 视图名 } { ????{{ FOR|AFTER|INSTEAD OF}{[INSERT][,UPDATE][,DELETE ]} ????AS ????????[{IF UPDATE(列名)[{AND|OR}UPDATE(列名)]?[ ...n ]???}] ??????? SQL语句 [ ...n ] ????} } 6.删除触发器的SQL语句 DROP TRIGGER {触发器名 } [ ,...n ] 7.触发器执行的时间 (1)在UPDATE、INSERT、DELETE语句执行后自动触发执行。 (2)对“FOR|AFTER”选项,触发器表中若定义了约束,则先处理约束,后执行触发器程序。 【实验目的】 掌握触发器的创建、修改、删除及其使用方法。 掌握触发器的功能。 实验 9.1 创建和执行触发器 【实验目的】 掌握使用企业管理器创建触发器; 掌握使用SQL创建触发器; 掌握触发器的执行。 【实验内容】 用企业管理器为表S创建一级联更新触发器TRIGGER_S。要求:若修改S 表中一学生的学号,则SC表中与该学生相关的学号自动修改。 用企业管理器为表SC创建一限制更新触发器TRIGGER_SC。要求:若修 改SC表中一记录的学号,则要检查表S中是否存在与该学号相同的记录,若有则不许修改,若没有则可修改。 用SQL为表SC创建一触发器Score_sc_tri。要求:当插入一个记录或修 改成绩时,确保此记录的成绩在0~100之间。 用SQL为表C创建一级联删除触发器TRIGGER_DC:通过课程名从C表中删 除某课程信息,同时删除SC表中与此课程相关的选课记录。 实验 9.1 创建和执行触发器 【实验步骤】 1.用企业管理器为表S创建一级联更新触发器TRIGGER_S。 (1)创建触发器。 创建触发器命令 触发器属性窗口 实验 9.1 创建和执行触发器 创建触发器 实验 9.1 创建和执行触发器 (2)验证触发器的作用 表S和表SC中的数据 (a)数据表
显示全部
相似文档