1、实验七、触发器1、实验目的(1)理解触发器的用途、类型和工作原理。(2)掌握利用 T-SQL 语句创建和维护触发器的方法。(3)掌握利用 SQL Server Management Studio 创建、维护触发器的方法。2、实验内容、1、创建 AFTER 触发器(1)创建一个在插入时触发的触发器 sc_insert,当向 SC 表插入数据时,须确保插入的学号已在 Student 表中存在,并且还须确保插入课程号在 Course 表中存在;若不存在,则给出相应的提示信息,并取消插入操作,提示信息要求指明插入信息是学号不满足条件还是课程号不满足条件。 (注:Student 表与 SC 表的外键约束
2、要先取消。 )(2)为 Course 表创建一个触发器 Course_del,当删除了 Course表中的一条课程信息时,同时将表 SC 中相应的学生选课记录也删除。(3)在 Course 表中添加一个平均成绩 avg_modify,当 SC 表中某学生的成绩发生变化时,则 Course 表中的平均成绩也能及时相应发生改变。(4)测试上述三个触发器。2、创建 INSERTED OF 触发器(1)创建一视图 student_view,包含学号、姓名、课程号、课程名、成绩等属性,在 student_view 上创建一个触发器 grade_modify,当对 student_view 中的学生的成绩
3、进行修改时,实际修改的是 SC 中的相应记录。(2)在 Student 表中插入一个 getcredit 字段(记录学生所获学分的情况) ,创建一个触发器 ins_credit,当更改(注:含插入时)SC 表中的学生成绩时,如果新成绩大于等于 60 分,则该生可获得这门课的学分,如果新成绩小于 60 分,则该生未能获得这门课的学分。(3)测试上述两个触发器。3、使用 T-SQL 语句管理和维护触发器(1)用系统存储过程 sp_helptrigger 查看触发器 grade_modify 的相关信息。(2)使用 sp_helptext 查看触发器 grade_modify 中的定义内容。(3)使
4、用 select 语句查看触发器 grade_modify 的定义内容。(4)用系统存储过程 sp_depends 查看触发器 grade_modify 的相关性(即该触发器涉及哪些基本表) 。(5)将 sc_insert 触发器改为 instead of 触发器,实现的功能不变。(6)将触发器 sc_insert 删除。4、使用 SQL Server Management Studio 管理触发器(1)在 SQL Server Management Studio 中重新创建刚删除的触发器 sc_insert。(2)查看触发器 sc_insert 的内容。(3)删除触发器 sc_insert。