1 / 6
文档名称:

实验七触发器.docx

格式:docx   大小:250KB   页数:6页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

实验七触发器.docx

上传人:梅子 2021/7/10 文件大小:250 KB

下载得到文件列表

实验七触发器.docx

相关文档

文档介绍

文档介绍:Document serial number【LGGKGB-LGG98YT-LGGT8CB-LGUT-LGG08】
实验七触发器
实验七 触发器
一、实验目的
(1)理解触发器的用途、类型和工作原理
(2)掌握利用T-SQL语句创建和维护触发器的方法
(3)掌握利用企业管理器创建、维护触发器的方法
二、实验内容

(1)创建一个在插入时触发的触发器sc_insert,当向sc表插入数据时,须确保插入的学号已在Student表中存在,并且还须确保插入的课程号在Course表中存在;若不存在,则给出相应的提示信息,并取消插入操作,提示信息要求指明插入信息是学号不满足条件还是课程号不满足条件(注:Student表与sc表的外键约束要先取消)。
create trigger sc_insert
on sc
after insert
as
if not exists(select * from student,inserted
where =
begin
print '插入信息的学号不在学生表中!'
if not exists(select * from course,inserted where =
print '插入信息的课程号不在课程表中!'
rollback
end
else
begin
if not exists(select * from course,inserted where =
begin
print '插入信息的课程号不在课程表中!'
rollback
end
end
执行:
①、insert into SC
values(,'001','78')
删除外键约束:
alter table SC
drop constraint FK__SC__Sno__182C9B23
②、insert into SC
values(,'001','78')
③、insert into SC
values('','006','78')
(2)为Course表创建一个触发器Course_del,当删除了Course表中的一条课程信息时,同时将表sc表中相应的学生选课记录删除掉。
create trigger course_del
on course
after delete
as
if exists(select * from sc,deleted
where =
begin
delete from sc
where in(select cno from deleted)
end
delete from Course
where Cno='003'
select * from SC
(3)在Course表中添加一个平均成绩avg_Grade字段(记录每门课程的平均成绩),创建一个触发器Grade_modify,当SC表中的某学生的成绩发生变化时,则Course表中的平均成绩也能及时相应的发生改变。
alter table Course
add avg_Grade smallint
update