- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验六 触发器(2012new)
实验六 触发器
学号: 姓名: 专业: 班级:
一、实验目的
(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
触发器的触发执行测试结果:
(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
触发器的触发执行测试结果:
(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
触发器的触发执行测试结果:
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
触发器的触发执行测试结果:
(2)在Student表中插入一个getcredit字段(记录学生所获学分的情况),创建一个触发器ins_credit,当更改(注:含插入时)SC表中的学生成绩时,如果新成绩大于等于60分,则该生可获得这门课的学分,且该学分须与course表中的值一致;如果新成绩小于60分,则该生未能获得学分,修改值为0。
触发
您可能关注的文档
- 安全培训——动火安全管理.ppt
- 安全家长会课件.ppt12.ppt
- 安全之危险的小圆珠.pptx
- 孵化实验 孵化.ppt
- 安全库存的数据统计.ppt
- 安全技术交底分项.docx
- 安全技术资料台帐五.doc
- 安全学习知识.ppt
- 安全教育宣传册.doc
- 安全教育日主题班会材料.docx
- 2020年中考地理试题分项汇编:地球和地图、世界地理概况(第06期)(原卷版).pdf
- 2024-2025学年湖北省四校高一语文上学期期中考试卷(附答案解析).pdf
- 2024-2025学年酒泉市高一数学上学期期中考试卷及答案解析.pdf
- 2023-2024学年九年级物理重难点突破:电功和电功率(原卷版).pdf
- 2024年高中语文名著阅读整本书阅读《乡土中国》之文学类文本阅读.pdf
- 2025年高考语文备考:中国古典诗词60位著名诗人介绍.pdf
- 2025年人教版小学英语各级知识点总结.pdf
- 初中语文名著知识点资料:《水浒传》108将简介与结局.pdf
- 2023年收集中级注册安全工程师之安全生产管理高分通关题库.pdf
- 利用导数研究函数的零点(方程的根)(解析版)-2025年高考数学一轮复习.pdf
最近下载
- 上海市外籍人口空间分布历史变迁研究.pdf
- 至为芯科技IP5356规格书资料.pdf
- 学习党的二十届三中全会精神应知应会知识测试题AB卷(附答案).docx VIP
- 进位制-(公开课).ppt VIP
- 船舶电气作业安全操作规程.docx
- DB37T5267-2023钢丝网架(片)板现浇混凝土复合保温体系应用技术标准 .docx VIP
- 2024安全生产标准化管理体系新旧版本对比汇总版.docx
- 国家电网计算机类笔试学习资料-计算机网络.pdf VIP
- 人教版初中数学第十四章《整式的乘法与因式分解》解答题提高训练 (39)(含答案解析).docx VIP
- 公务员考试常识习题(带答案).doc VIP
文档评论(0)