实验任务
- 首先创建请假统计表“leave_apply_stat”,该表包含学号和请假次数两个字段;然后,创建存储过程“leave_apply_stat_proc”,该存储过程统计每个学生的请假次数,并将统计的结果插入表“leave_apply_stat”中;
- 执行(1)中创建的存储过程,查看表leave_apply_stat执行存储过程前后的数据变化。
- 为student表使用create trigger语句创建触发器tri_delete,实现参照完整性(SET DEFAULT ‘000000’),并进行删除操作验证该触发器。
实验过程
Step1:首先创建请假统计表“leave_apply_stat”,该表包含学号和请假次数两个字段;然后,创建存储过程“leave_apply_stat_proc”,该存储过程统计每个学生的请假次数,并将统计的结果插入表“leave_apply_stat”中;
CREATE TABLE leave_apply_stat ( studentNum varchar(16), apply_count int ) GO CREATE PROCEDURE leave_apply_stat_proc AS BEGIN INSERT INTO leave_apply_stat SELECT studentNum, count(*) FROM leave_apply GROUP BY studentNum END
存储过程和函数非常相似,看看语法就会写了
Step2:执行(1)中创建的存储过程,查看表leave_apply_stat执行存储过程前后的数据变化。
EXEC leave_apply_stat_proc
执行存储过程后,表中成功添加了数据
Step3:为student表使用create trigger语句创建触发器tri_delete,实现参照完整性(SET DEFAULT ‘000000’),并进行删除操作验证该触发器。
GO CREATE TRIGGER tri_delete ON student AFTER DELETE AS BEGIN UPDATE stu_choose_lesson SET studentNum = '000000' WHERE studentNum = (SELECT studentNum FROM deleted) UPDATE leave_apply SET studentNum = '000000' WHERE studentNum = (SELECT studentNum FROM deleted) END DELETE student WHERE studentNum = '200101'
删除student表中studentNum为20010学号的学生后,student_choose_lesson和leave_apply表中,学号为200101的学生学号均设置为000000,实现了参照完整性
实验八Over,累死了,睡觉睡觉~
Comments NOTHING