目录
实验目的和要求
熟悉触发器的定义和使用。
实验环境
Win10
SQL SEVER环境
实验内容与过程
题目
学生(学号,年龄,性别,系名)
课程(课号,课名,学分,学时)
选课(学号,课号,成绩)
1.建立学生表的insert触发器,若向学生表中插入一条记录,则自动向选课表中插入一行,令该生选一门选修人数最多的课。
2.在建立学生表的delete触发器,若选课表中该生有选课记录,则拒绝删除,要求在删除学生信息同时,将相关表中的信息全部删除。
代码
create trigger trigger_1
on student
for insert
as
declare
@sno int,
@cno int
select @sno=(select sno from inserted)
select top 1 @cno=cno from(select cno,count(*) as total from sc group by cno)sc
insert into sc values(@sno,@cno,0);
insert into student (sno,sage,ssex,sdept)
values(5,20,'男','计算机')
create trigger de
on student
after delete
as
declare @sno int
set @sno=(select sno from deleted)
if @sno in (select sno from sc)
print'请先删除相关记录'
delete from sc where sno=(select sno from deleted)
delete from student where sno= (select sno from deleted)
print'删除完成'
delete from student where sno=3
select *from student
select * from sc
流程图
- 实验结果与分析
结果分析
完成了实验要求,实现了建立学生表的insert触发器,若向学生表中插入一条记录,则自动向选课表中插入一行,令该生选一门选修人数最多的课。以及在建立学生表的delete触发器,若选课表中该生有选课记录,则拒绝删除,要求在删除学生信息同时,将相关表中的信息全部删除。
实验心得
通过本次实验让我熟悉了触发器的定义和使用。触发器是一种数据库对象,它在特定的数据库事件(例如插入、更新、删除)发生时自动执行一些操作,可以用来实现复杂的业务逻辑和数据完整性约束。触发器的使用一般包括四个步骤,分别是创建触发器、激活触发器、测试触发器和修改或删除触发器。