实验六 触发器实验
一、实验目的:
通过实验掌握触发器建立和使用,主要包括insert的after触发器、delete的after触发器、insert的after触发器和相关的instead of 触发器。
二、实验学时
2学时
三、实验准备:
1:在teaching数据库中,给students增加一列avgcj decimal(5,2),用来保存学生的平均成绩,并用下边的语句实现该列数据的填充。
Update students set avgcj=(select avg(score) from score where stu_id=students.stu_id) 2:在teaching数据库中,给courses增加一列avgcj decimal(5,2),用来保存课程的平均成绩,并用下边的语句实现该列数据的填充。
Update courses set avgcj=(select avg(score) from sc where cour_id=courses.cour_id)
四、实验内容:
1:在teaching数据库中,创建一个对score表的insert的after触发器,当对score表进行数据成功插入时,对学生表的平均成绩进行更改。
使用触发器:在score中插入一条正确的记录观察执行students和courses表中数据的变化。
2:在teaching数据库中,创建一个对score表的delete的after触发器,当对score表进行数据成功删除时,对学生表的平均成绩进行更改。
使用触发器:在score中删除一条记录后观察执行students和courses表中数据的变化。 3:在teaching数据库中,创建一个对score表的update的after触发器,当对score表进行数据成功删除时,对学生表的平均成绩进行更改。
使用触发器:在score中更新记录后观察执行students和courses表中数据的变化。
实 验 报 告
学号: 姓名: 成绩: 实验名称: 触发器实验 通过实验掌握触发器建立和使用,主要包括insert的after触发器、delete的after触发器、insert的after触发器和相关的instead of 触发器。 1: score表的insert的after触发器的内容 实验目的: create trigger insertcj on score for insert as begin declare @id char(15) select @id=stu_id from inserted Update students set avgcj=(select avg(score) from score where stu_id=@id) where stu_id=@xh end 给出插入的数据和变化的数据. 实验内容: 2: score表的delete的after触发器的内容 create trigger deletecj on score after delete as begin declare @xh char(15) select @xh=stu_id from deleted Update students set avgcj=(select avg(score) from score where stu_id=@xh) where stu_id=@xh end 给出删除的数据和变化的数据. 3: score表的update的after触发器的内容 create trigger updatecj on score after update as begin declare @xh char(15) select @xh=stu_id from updated Update students set avgcj=(select avg(score) from score where stu_id=@xh) where stu_id=@xh end 实验收获 教师评语: