数据库实验报告(7)-触发器

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

桂林航天工业学院学生实验报告

实验七

实验名称触发器实验日期2019.11.12

实验目的

1.了解触发器的基本原理,掌握创建触发器的方法。

2.掌握修改和删除触发器的方法,能够设计简单的触发器。

实验内容触发器

实验方法及步骤

1、创建一个触发器InsStud,当向student表插入一条记录时,同时把该记录插入到关系student2。

CREATE TRIGGER InsStud

on student

FOR INSERT

AS

insert into student2

select*from inserted

2、向student表中插入一条记录('201215130','张三','男',20,'CS'),查看student和student2表中记录的变化是什么?

student和student2表中都能插入('201215130','张三','男',20,'CS')这条记录

insert student values('201215130','张三','男',20,'CS');

select*from student

select*from student2

3、创建一个触发器DelStud,当向student表删除一条记录时,同时把该记录从student2表删除掉。

CREATE TRIGGER DelStud

on student

FOR delete

AS

delete student2

select*from deleted

4、删除student表中的sno为201215130的元组,同时查看student2表中元组的变化是什么?

student和student2表中都能删除('201215130','张三','男',20,'CS')这条记录。

delete student where sno='201215130'

select*from student

select*from student2

5、为course表创建一个名为del_rollback_tr的DELETE触发器,该触发器的作用是禁止删除course表中的记录。

CREATE TRIGGER del_rollback_tr

on course

FOR delete

AS

if (exists(select*from deleted))

rollback

insert course values('8','张','5',2);

delete course where cno='8'

6、为student表创建一个名为student_tr 的update、delete触发器,该触发器的作用是当修改或者删除student表中的 sno时,同步修改或者删除sc表中的sno的内容。(前提是sc表的sno的外键规则得删除)

create trigger student_tr

on student

for delete,update

as

if update (sno)

update sc set sno=a.asno from (select inserted.sno

as asno,deleted.sno

as bsno from inserted,deleted)

as a inner join sc

as b on a.bsno=b.sno

修改前

修改后:update student set sno=sno='80'where sno='6666666'

相关文档
最新文档