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

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

ID:56922101

大小:104.00 KB

页数:6页

时间:2020-07-24

数据库实验八:触发器及应用.doc_第1页
数据库实验八:触发器及应用.doc_第2页
数据库实验八:触发器及应用.doc_第3页
数据库实验八:触发器及应用.doc_第4页
数据库实验八:触发器及应用.doc_第5页
资源描述:

《数据库实验八:触发器及应用.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数据库实验八:触发器及应用一、实验目的与要求:1.实验目的(1)学习触发器的使用,加深对触发器功能和作用的理解。(2)体会触发器执行的时机。2.实验要求建立如下的存储过程(基于前面实验建立的表和插入的数据,并为每个存储过程设计返回的状态值):(1)为选课表分别建立插入和更新触发器,如果当前学生累计不及格门数达到5则给出警示信息。(2)为课程表分别建立插入和更新触发器来建立约束规则:“专业基础”课的教师必须为“教授”或“副教授”,如果不满足约束则拒绝操作,并给出错误信息。(3)自行再分别设计2~3个触发器(在实验报告中要准确描述功能需求)。(4)设计并执行相关的操作,体会DML触发器的效

2、果和作用。二、实验内容1、实验原理建立触发器的语句是:CREATETRIGGER[schema_name].trigger-nameON{table

3、view}FOR{INSERT

4、UPDATE

5、DELETE}AS[IFUPDATE(column)[{AND

6、OR}UPDATE(column)…]]sql-statement2、实验步骤与结果(1)调出SQLServer2005软件的用户界面,进入SQLSERVERMANAGEMENTSTUDIO。(2)输入自己编好的程序。(3)检查已输入的程序正确与否。(4)运行程序,并分析运行结果是否合理和正确。在运行时要注意当输入不同的数据时所得

7、到的结果是否正确。(5)输出程序清单和运行结果。(1)为选课表分别建立插入和更新触发器,如果当前学生累计不及格门数达到5则给出警示信息。插入触发器:createtriggerxk_triggeron选课forinsertasdeclare@amountint,@xhchar(10)select@xh=学号frominsertedif@xhisnotnullbeginselect@amount=(selectcount(*)from选课where成绩<60and学号=@xh)if@amount>=5beginraiserror('不及格达到5门',16,10)endendinsertin

8、to选课values('001','03','50')insertinto选课values('001','02','50')insertinto选课values('001','04','50')更新触发器:createtriggerxk_trigger2on选课forupdateasdeclare@amountint,@xhchar(10)select@xh=学号frominsertedif@xhisnotnullbeginselect@amount=(selectcount(*)from选课where成绩<60and学号=@xh)if@amount>=5beginraiserror(

9、'不及格达到5门',16,10)endendupdate选课set成绩=50where学号='001'and课程编号='02'update选课set成绩=50where学号='001'and课程编号='03'update选课set成绩=50where学号='001'and课程编号='04'update选课set成绩=50where学号='001'and课程编号='05'update选课set成绩=50where学号='001'and课程编号='06'(2)为课程表分别建立插入和更新触发器来建立约束规则:“专业基础”课的教师必须为“教授”或“副教授”,如果不满足约束则拒绝操作,并给出错误

10、信息。插入触发器:createtriggerkc_trigger3on课程forinsertasdeclare@zcchar(10),@zrjschar(10),@kcbhchar(10),@kcxzchar(10)select@kcbh=课程编号,@zrjs=责任教师frominsertedif@kcbhisnotnullbeginselect@kcxz=课程性质from课程select@zc=职称from教师where教师编号in(select责任教师from课程where课程性质='专业基础')if@zc!='教授'or@zc!='副教授'beginraiserror('该专业基

11、础课的教师不是教师或副教授!',15,10)rollbacktransactionendEndinsertinto课程values('09','TCP协议','2','8','专业基础')更新触发器:createtriggerkc_trigger4on课程forupdateasdeclare@zcchar(10),@zrjschar(10),@kcbhchar(10),@kcxzchar(10)select@kcbh=课程编号,@zrjs=责任

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。