数据库实验八触发器及应用.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库实验八触发器及应用

数据库实验八:触发器及应用 一、实验目的与要求: 1.实验目的 (1)学习触发器的使用,加深对触发器功能和作用的理解。 (2)体会触发器执行的时机。 2.实验要求 建立如下的存储过程(基于前面实验建立的表和插入的数据,并为每个存储过程设计返回的状态值): (1)为选课表分别建立插入和更新触发器,如果当前学生累计不及格门数达到5则给出警示信息。 (2)为课程表分别建立插入和更新触发器来建立约束规则:“专业基础”课的教师必须为“教授”或“副教授”,如果不满足约束则拒绝操作,并给出错误信息。 (3)自行再分别设计2~3个触发器(在实验报告中要准确描述功能需求)。 (4)设计并执行相关的操作,体会DML触发器的效果和作用。 二、实验内容 1、实验原理 …]] sql-statement 2、实验 (1)调出SQL Server2005软件的用户界面,进入SQL SERVER MANAGEMENT STUDIO。 (2)输入自己编好的程序。 (3)检查已输入的程序正确与否。 (4)运行程序,并分析运行结果是否合理和正确。在运行时要注意当输入不同的数据时所得到的结果是否正确。 (5)输出程序清单和运行结果。 (1)为选课表分别建立插入和更新触发器,如果当前学生累计不及格门数达到5则给出警示信息。 插入触发器: create trigger xk_trigger on 选课 for insert as declare @amount int, @xh char(10) select @xh=学号 from inserted if @xh is not null begin select @amount=(select count(*)from 选课 where 成绩60 and 学号=@xh) if @amount=5 begin raiserror(不及格达到门,16,10) end end insert into 选课 values(001,03,50) insert into 选课 values(001,02,50) insert into 选课 values(001,04,50) create trigger xk_trigger2 on 选课 for update as declare @amount int, @xh char(10) select @xh=学号 from inserted if @xh is not null begin select @amount=(select count(*)from 选课 where 成绩60 and 学号=@xh) if @amount=5 begin raiserror(不及格达到门,16,10) end end update 选课 set 成绩=50 where 学号=001 and 课程编号=02 update 选课 set 成绩=50 where 学号=001 and 课程编号=03 update 选课 set 成绩=50 where 学号=001 and 课程编号=04 update 选课 set 成绩=50 where 学号=001 and 课程编号=05 update 选课 set 成绩=50 where 学号=001 and 课程编号=06 create trigger kc_trigger3 on 课程 for insert as declare @zc char(10),@zrjs char(10),@kcbh char(10),@kcxz char(10) select @kcbh=课程编号,@zrjs=责任教师 from inserted if @kcbh is not null begin select @kcxz=课程性质 from 课程 select @zc=职称 from 教师 where 教师编号 in (select 责任教师 from 课程 where 课程性质=专业基础) if @zc!=教授 or @zc!=副教授 begin raiserror(该专业基础课的教师不是教师或副教授!,15,10) rollback transaction end End insert into 课程 values(09,TCP协议,2,8,专业基础) create trigger kc_trigger4 on 课程 for update as declare @zc char(10),@zrjs char(10),@kcbh char(10),@kcxz char(10) select @kcbh=课程编号,@zrjs=责任教师 from inserted if @kcbh is not null beg

文档评论(0)

yaobanwd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档