触发器实验报告

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

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
通过本次实验使我更深刻的了解到,触发器的原理啊与存储过程是十分类似的, 我们可以通过对各表编写触发器来完善对各数据表及数据表间的管理。
实验评语 实验成绩
指导教师签名:
年月日
delete from sc where cno=@cno_del
2、修改触发器 A、交互式修改触发器 Trigger_s。要求:若删除 S 表中某一学生的记
录信息,则自动删除 SC 表与该学生相关的记录信息。 --首先删除原来的触发器 Trigger_s
create trigger Trigger_s
end
C、用 SQL 方式为 SC 表创建一个触发器 score_sc_tri。要求:当插入一个记录 或修改成绩时,确保成绩在 0--100 分之间。
create trigger score_sc_tri on sc for update,update
as
declare @score_int int
B、用 SQL 方式删除 C 表中的触发器 Trigger_c。
drop trigger trigger_c
四、实验结果(本实验源程序清单及运行结果或实验结论、实验设计图) 1A、
测试如下 :
1B、 测试如下:
1C、测试如下
1D、测试如下 2A、测试如下 2B、测试如下 五、实验总结(对本实验结果进行分析,实验心得体会及改进意见)
end
D、用 SQL 方式为 C 表创建一个级联删除触发器 Trigger_c。要求:
当从 C 表中删除某课程信息时,同时删除 SC 表中此课程关的选课记录。
create trigger Trigger_c
on c
for delete
as declare @cno_del char(6)
select @cno_del=cno from deleted
实验报告
课程名称
数据库系统原理
实验日期
实验项目名称 触发器
实验地点 图 523
实验类型
□验证型 □综合型
√设计型
学时 2
一、实验目的及要求(本实验所涉及并要求掌握的知识点)
1、掌握使用交互式和 T-SQL 方式分别实现触发器的创建、修改、删除及其使用 方法。 2、掌握触发器的功能。 3、分析并理解触发器的实现机制。
select @score_int=score from inserted
if (@score_int<=100 and @score_int>=0)
begin
print '操作完成!'
return
end
else
begin
print '成绩应在-100之间!'
Rollback Transaction
alter trigger trigger_c on c for delete as begin delete sc where cno in (select cno from deleted)
end
3、删除触发器 A、用交互方式删除 S 表中的触发器 Trigger_s。
点击数据库 jxsk,点击表,点击 c 表,触发器,点击触发器 Trigger_s 右单击, 删除,在弹出的框中点确定就行了。
二、实验环境(本实验所使用的硬件设备和相关软件) 微型计算机 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
on s
for delete
as declare @sno_del char(6)
Select @sno_del=sno from deleted
delete from sc where sno=@sno_del
B、用 SQL 方式修改数据库 C 表触发器 Trigger_c。要求:从数据库表 C 中删除 某课程信息时,同时删除表 SC 和 TC 中此课程相关记录。
end
B、交互式为 SC 表创建一个限制更新触发器 Trigger_sc。要求:若修 改 SC 表中一记录的学号,则要检查 S 中是否存在该学号相同的记录,若存在
则不许修改,若不在则可以修改。
create trigger trigger_sc on sc for update as
if update(sno)
相关文档
最新文档