实验六 触发器(2012new)
更新时间:2023-10-13 16:12:01 阅读量: 综合文库 文档下载
- 实验六实验报告表推荐度:
- 相关推荐
实验六 触发器
学号: 姓名: 专业: 班级:
一、实验目的
(1)理解触发器的用途、类型和工作原理。
(2)掌握利用T-SQL语句创建和维护触发器的方法。
(3)掌握利用SQL Server Management Studio创建、维护触发器的方法。
二、实验内容
1.创建AFTER触发器
(1)创建一个在插入时触发的触发器sc_insert:当向sc表插入数据时,须确保插入的学号已在student表中存在,并且还须确保插入的课程号在course表中存在;若不存在,则给出相应的提示信息,并取消插入操作,提示信息要求指明插入信息是学号不满足条件还是课程号不满足条件。(注:student表与sc表的外键约束,course表与sc表的外键约束要先取消)。
触发器的创建语句:if exists (select name from sysobjects
where name='sc_insert' and type='tr') drop trigger sc_insert go
create trigger sc_insert on sc for insert As
declare @sno char(8),@cno char(3) Select @sno=sno,@cno=cno from inserted
If not exists (select * from student where sno=@sno) Begin
print 'not exist the student'
If not exists (select * from course where cno=@cno) print 'not exist the course' Rollback tran End
else if not exists (select * from course where cno=@cno) begin
Rollback tran
print 'not exist the course' end go
1
触发器的触发执行测试结果:
(2)为course表创建一个触发器course_del,当删除了course表中的一条课程信息时,同时将表sc表中相应的学生选课记录也一并删除。
触发器的创建语句:create trigger course_del on course for delete As declare @cno char(3)
Select @cno=cno from deleted Delete from sc where cno=@cno 触发器的触发执行测试结果:
2
(3)在course表中添加一个平均成绩avg_grade字段(记录每门课程的平均成绩),创建一个触发器grade_modify,当SC表中的某学生的成绩发生变化时,则course表中的平均成绩也能及时相应发生改变。
触发器的创建语句:create trigger grade_modify
on sc for update as if update(grade) begin
update course
set avg_grade=(select avg(grade) from sc where course.cno=sc.cno group by cno)
end
触发器的触发执行测试结果:
3
2.创建INSTEAD OF触发器
(1)创建一视图student_view,包含学号、姓名、课程号、课程名、成绩等属性,在student_view上创建一个触发器grade_moidfy,当对student_view中的学生的成绩进行修改时,实际修改的是sc中的相应记录。
触发器的创建语句:create trigger grade_moidfy
on student_view instead of insert
as declare @grade tinyint,@sno char(8),@cno char(3) if update(grade) begin
select @grade=grade,@sno=sno,@cno=cno from inserted update sc set grade=@grade
where sno=@sno and cno=@cno
end
触发器的触发执行测试结果:
4
(2)在Student表中插入一个getcredit字段(记录学生所获学分的情况),创建一个触发器ins_credit,当更改(注:含插入时)SC表中的学生成绩时,如果新成绩大于等于60分,则该生可获得这门课的学分,且该学分须与course表中的值一致;如果新成绩小于60分,则该生未能获得学分,修改值为0。
触发器的创建语句:create trigger ins_credit
on sc for update,insert
as declare @sno char(8),@cno char(3),@grade tinyint, @credit tinyint if update(grade) begin
select @grade=grade,@cno=cno,@sno=sno from inserted select if @grade>=60 begin
select @credit=credit from course where cno=@cno update student
set getcredit=@credit where sno=@sno end else
update student
set getcredit=@credit where sno=@sno
end
5
正在阅读:
实验六 触发器(2012new)10-13
新闻专业课程设置10-13
军人入党申请书201809-08
【骂人的话顺口溜2016】骂人的话顺口溜2016大全02-10
兴隆庄煤矿人力资源开发与研究07-27
中国新材料产业必须走原创之路07-27
第三章《 数字X线成像》10-27
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 触发器
- 2012new
- 实验
- 中央广播电视大学土木工程专业(本科)集中实践环节实施细则
- 学习教师五条禁令心得体会
- 2017年南京理工大学计算机科学与技术学院数据库与计算机网络复试之计算机网络复试实战预测五套卷
- 铁路行车组织期末试卷及答案(A)
- 综合练习题
- 南京市城市道路挖掘、占用申请表
- MegaRAID Storage Manager(MSM)安装使用教程 - 图文
- 2018年苏教版小学数学四年级下册第五单元《解决问题的策略》试题共5套
- 乌兹别克斯坦烟草种植市场投资前景预测报告
- 乡镇耕地保护工作总结与乡镇职业健康监管活动要点汇编
- 医用物理学习题册答案2015
- 关于开展岗位聘任工作的通知
- 新闻编辑学课后答案
- 专业技术人员创新能力培养与提高2014周口75
- 北邮《移动通信系统与原理》期末复习
- 第七章 习题
- 小升初完形填空专项
- 《证券业从业人员执业行为准则》试题 答案
- 2014河西学院专升本真题冲刺班
- 储运安全操作规程