数据库系统概论实验报告五_第1页
数据库系统概论实验报告五_第2页
数据库系统概论实验报告五_第3页
数据库系统概论实验报告五_第4页
数据库系统概论实验报告五_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、山西大学计算机与信息技术学院实验报告姓 名张浩田学 号专业班级2014级计科三班课程名称数据库实验实验日期2016/12/19指导教师王俊红成 绩实验名称实验五 创建和使用触发器一、实验目的:理解触发器的触发过程和类型,掌握创建触发器的方法。二、实验内容及原理:触发器实际上就是一种特殊类型的存储过程,它是在执行某些特定的T-SQL语句时自动执行的一种存储过程。在SQL Server 2005中,根据SQL语句的不同,把触发器分为两类:一类是DML触发器,一类是DDL触发器。在SQL Server 2005中,触发器可以分为两大类:DML触发器和DDL触发器。DML触发器是当数据库服务器中发生数

2、据操作语言(Data Manipulation Language)事件时执行的存储过程。DML触发器又分为两类:After触发器和Instead Of触发器。DDL触发器是在响应数据定义语言(Data Definition Language)事件时执行的存储过程。DDL触发器一般用于执行数据库中管理任务。如审核和规范数据库操作、防止数据库表结构被修改等。三、实验步骤:掌握使用对象资源管理器和Transact-SQL语句两种方法创建触发器。方法:启动SSMS,链接到数据库实例,在“对象资源管理器”窗口里,选择“数据库实例”,“数据库”“学生管理系统”“表”“Student” “触发器”右键快捷菜

3、单的“新建触发器”,打开“创建触发器”模板,如图5-1所示。在“创建触发器”模板中,修改代码,或者选择“查询”“指定参数模板”选项,打开“指定模板参数的值”,指定模板参数后,在模板里修改其他代码,如图5-2。然后单击“运行”按钮,完成触发器的创建。图5-1 图5-2例1:当输入Insert into Student1 values (,王阳,男, 36, 计算机);建立的触发器执行了其功能,执行结果为例2:create trigger sson studentfor insertasbegindeclare xh smallint;select xh=inserted.Sagefrom ins

4、erted;if exists(select Sno from student where Sage=xh)update student set sage=xh+1 where Sage=xh;end;当执行以下语句时use TestDBinsert into studentvalues(,zp,男,20,ma);结果中Sage为20的元组都加上了1。例3:创建触发器如下:触发器所产生的效果:例4:创建触发器:执行SQL语句:结果使student表中的所有元组的sage均变为20:思考题在数据库 Company_Data的表项目数据表和员工数据表中分别创建触发器。(1)打开查询编辑器。(2)在

5、查询窗口书写 CREATE TRIGGER语句,基于表员工数据表创建AFTER INSERT 触发器 Tigger_NewEmployeeSalary,将插入员工的工资额限制在 5000以内。use TestDBGOCREATE TRIGGER Trigger_NewEmployeeSalaryON 员工数据表AFTER INSERTASIF (SELECT 工资 FROM inserted) 5000BEGINPRINT 新员工工资不能超过ROLLBACKENDGO点执行后触发器创建成功。在查询编辑器中写如下语句,用于测试上述触发器是否起作用:insert into Employee (编号

6、,工资) values (10,6000);点击执行后会提示以下信息(说明触发器已起到作用)(3)在查询窗口书写CREATE TRIGGER语句,基于表员工数据表创建AFTER UPDATE触发器Trigger_SalaryChange,将员工工资变动额限制在2000以内。CREATE TRIGGER Trigger_SalaryChangeON 员工数据表AFTER UPDATEASIF UPDATE(工资)BEGIN IF (SELECT MAX(ABS(inserted.工资- deleted.工资) FROM inserted JOIN deleted ON inserted.编号= deleted.编号) 2000BEGIN PRINT 工资变动不能超过 ROLLBACK TRANSACTIONENDEND点击执行后触发器就创建成功了。 在查询编辑器中写如下语句,用于测试上述触发器是否起作用: Update 员工数据表set 工资=10000 where 姓名=李四 ; 四、实验结果及分析:1、通

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论