文档介绍:实验报告
课程名称
数据库系统原理
实验日期
实验项目名称
触发器
实验地点
图523
实验类型
□验证型√设计型
□综合型
学时
2
一、实验目的及要求(本实验所涉及并要求掌握的知识点)
1、掌握使用交互式和T-SQL方式分别实现触发器的创建、修改、删除及其使用方法。
2、掌握触发器的功能。
3、分析并理解触发器的实现机制。
二、实验环境(本实验所使用的硬件设备和相关软件)
微型计算机
Sql Server2005
Windows XP
三、实验内容及步骤
1、创建和执行触发器
A、交互式为S表创建一个级联更新触发器Trigger_s。要求:若修改S表中一学生的学号,则SC表中与该学生相关的学号自动修改。
create trigger trigger_s
on s
for update
as
if update(sno)
begin
declare ***@sno_del char(6),***@sno_ins char(6)
select ***@sno_del=sno from deleted
select ***@sno_ins=sno from inserted
if update(sno)
update sc set sno=***@sno_ins where sno=***@sno_del
end
B、交互式为SC表创建一个限制更新触发器Trigger_sc。要求:若修改SC表中一记录的学号,则要检查S中是否存在该学号相同的记录,若存在
则不许修改,若不在则可以修改。
create trigger trigger_sc on sc for update
as
if update(sno)
begin
declare ***@sno_del char(6)
select ***@sno_del=sno from deleted
if (select sno from s where sno=***@sno_del) is not null
Rollback Transaction
else
delete from sc where sno=***@sno_del
end
C、用SQL方式为SC表创建一个触发器score_sc_tri。要求:当插入一个记录或修改成绩时,确保成绩在0--100分之间。
create trigger score_sc_tri on sc for update,update
as
declare ***@score_int int
select ***@score_int=score from inserted
if (***@score_int<=100 and ***@score_int>=0)
begin
print '操作完成!'
return
end
else
begin
print '成绩应在-100之间!'
Rollback Transaction
end D、用SQL方式为C表创建一个级联删除触发器Trigger_c。要求:当从C表中删除某课程信息时,同时删除SC表中此课程相关的选课记录。
create trigger Trigger_c
on c
for delete
as declare ***@cno_del char(6