欢迎来到天天文库
浏览记录
ID:56922099
大小:438.50 KB
页数:7页
时间:2020-07-24
《数据库系统概论实验报告五.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、山西大学计算机与信息技术学院实验报告姓名张浩田学号专业班级2014级计科三班课程名称数据库实验实验日期2016/12/19指导教师王俊红成绩实验名称实验五创建和使用触发器一、实验目的:理解触发器的触发过程和类型,掌握创建触发器的方法。二、实验内容及原理:触发器实际上就是一种特殊类型的存储过程,它是在执行某些特定的T-SQL语句时自动执行的一种存储过程。在SQLServer2005中,根据SQL语句的不同,把触发器分为两类:一类是DML触发器,一类是DDL触发器。在SQLServer2005中,触发器可以分为两大类:DML触发器和DDL触发器。DML触发器是当数据库服务器中发生数据操作语言(D
2、ataManipulationLanguage)事件时执行的存储过程。DML触发器又分为两类:After触发器和InsteadOf触发器。DDL触发器是在响应数据定义语言(DataDefinitionLanguage)事件时执行的存储过程。DDL触发器一般用于执行数据库中管理任务。如审核和规范数据库操作、防止数据库表结构被修改等。三、实验步骤:掌握使用对象资源管理器和Transact-SQL语句两种方法创建触发器。方法:启动SSMS,链接到数据库实例,在“对象资源管理器”窗口里,选择“数据库实例”,→“数据库”→“学生管理系统”→“表”→“Student”→“触发器”右键快捷菜单的“新建触发
3、器”,打开“创建触发器”模板,如图5-1所示。在“创建触发器”模板中,修改代码,或者选择“查询”→“指定参数模板”选项,打开“指定模板参数的值”,指定模板参数后,在模板里修改其他代码,如图5-2。然后单击“运行”按钮,完成触发器的创建。图5-1图5-2例1:当输入InsertintoStudent1values(,’王阳’,‘男’,36,‘计算机’);建立的触发器执行了其功能,执行结果为例2:createtriggerssonstudentforinsertasbegindeclare@xhsmallint;select@xh=inserted.Sagefrominserted;ifexis
4、ts(selectSnofromstudentwhereSage=@xh)updatestudentsetsage=@xh+1whereSage=@xh;end;当执行以下语句时useTestDBinsertintostudentvalues('','zp','男',20,'ma');结果中Sage为20的元组都加上了1。例3:创建触发器如下:触发器所产生的效果:例4:创建触发器:执行SQL语句:结果使student表中的所有元组的sage均变为20:思考题在数据库Company_Data的表"项目数据表"和"员工数据表"中分别创建触发器。(1)打开查询编辑器。(2)在查询窗口书写CREAT
5、ETRIGGER语句,基于表"员工数据表"创建AFTERINSERT触发器Tigger_NewEmployeeSalary,将插入员工的工资额限制在5000以内。useTestDBGOCREATETRIGGERTrigger_NewEmployeeSalaryON员工数据表AFTERINSERTASIF(SELECT工资FROMinserted)>5000BEGINPRINT'新员工工资不能超过'ROLLBACKENDGO点执行后触发器创建成功。在查询编辑器中写如下语句,用于测试上述触发器是否起作用:insertintoEmployee(编号,工资)values(10,6000);点击执行后
6、会提示以下信息(说明触发器已起到作用)(3)在查询窗口书写CREATETRIGGER语句,基于表"员工数据表"创建AFTERUPDATE触发器Trigger_SalaryChange,将员工工资变动额限制在2000以内。CREATETRIGGERTrigger_SalaryChangeON员工数据表AFTERUPDATEASIFUPDATE(工资)BEGINIF(SELECTMAX(ABS(inserted.工资-deleted.工资))FROMinsertedJOINdeletedONinserted.编号=deleted.编号)>2000BEGINPRINT'工资变动不能超过'ROLLB
7、ACKTRANSACTIONENDEND点击执行后触发器就创建成功了。在查询编辑器中写如下语句,用于测试上述触发器是否起作用:Update员工数据表set工资=10000where姓名='李四';四、实验结果及分析:1、通过实验了解了触发器的触发过程和类型,掌握创建触发器的方法,能够根据题目要求设计出触发器。2、在创建触发器中,系统会临时生成一个inserted或deleted表,对触发器的一些操作都用到这些
此文档下载收益归作者所有