概述
目录
一、实验目的
二、实验内容及要求
三、实验小结
一、实验目的
1.了解触发器的概念、特点和作用。
2.掌握SQL SERVER 创建和管理触发器的方法。
二、实验内容及要求
本实验使用数据库为SCHOOL数据库。
l.为deparment表增加一列teac_num用于统计各个系教师的人数。
alter table deparment
add teac_num int null
2.更新teac_num列,让其正确统计当前数据库中各个系教师的人数。
update deparment set teac_num =
( select count(*)
from Teacher
group by Depar_id
having Teacher.Depar_id=Deparment.Depar_id
)
3.在Teacher表中创建一个insert触发器trigger_in_teacher,使得某系增加新教师时,该系对应的teac_num列自动变化。
create trigger trigger_in_teacher
on Teacher for insert
as
begin
update Deparment set teac_num=( select count(*)
from Teacher
group by Depar_id
having Teacher.Depar_id=Deparment.Depar_id
)
end
insert into teacher values('0509','bb','男',null,'讲师','06')
insert into teacher values('0510','cc','男',null,'讲师','06')
drop trigger trigger_in_teacher
4.创建一个update触发器trigger_update_course,修改课程表中Course中的某门课的课程号时,对StudentGrade,CourseTeacher中课程号也做相应修改。
create trigger trigger_update_course
on Course for update
as
begin
update StudentGrade set Course_id=
(select Course_id from inserted)
where Course_id =(select Course_id from deleted )
update CourseTeacher set Course_id=
(select Course_id from inserted)
where Course_id =(select Course_id from deleted )
end
-- 用于测试
update Course
set Course_id='1110'
where Course_name='数据库'
测试该触发器:将“数据库”的课程号改为“1110”,修改能否顺利执行?如不能,原因是什么?
5.创建一个触发器trigger_course,当修改课程数据表course中的数据时(包括插入、更新和删除操作),显示提示信息“课程表被修改了”。
create trigger trigger_course
on Course for update,insert,delete
as
begin
print '课程表被修改了'
end
-- 可以
update Course
set Course_hour=80
where Course_name='数据库'
-- 不能
delete from Course
where Course_name='古代汉语'
测试该触发器:将“数据库”的学时改为80,将“数据结构”的课程号改为“5010”,修改能否顺利执行?系统有何反应?如不能,原因是什么?
测试该触发器:将“古代汉语”删除,删除能否顺利执行?系统有何反应?如不能,原因是什么?
6.删除trigger_ course触发器。
drop trigger trigger_course
三、实验小结
1.触发器的主要作用是实现数据的完整性和一致性。如何正确使用触发器?
2.触发器可以划分为几种类别?分别是什么?
3. 此次实验中得到的哪些经验教训、疑难问题?有什么心得或总结?
最后
以上就是威武砖头为你收集整理的实验十一 触发器的使用一、实验目的二、实验内容及要求三、实验小结的全部内容,希望文章能够帮你解决实验十一 触发器的使用一、实验目的二、实验内容及要求三、实验小结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复