数据库实验 触发器

上传人:kms****20 文档编号:40706185 上传时间:2018-05-27 格式:DOC 页数:6 大小:125.50KB
返回 下载 相关 举报
数据库实验  触发器_第1页
第1页 / 共6页
数据库实验  触发器_第2页
第2页 / 共6页
数据库实验  触发器_第3页
第3页 / 共6页
数据库实验  触发器_第4页
第4页 / 共6页
数据库实验  触发器_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《数据库实验 触发器》由会员分享,可在线阅读,更多相关《数据库实验 触发器(6页珍藏版)》请在金锄头文库上搜索。

1、实实 验验 报报 告告专业:专业: 计算机软件工程计算机软件工程 班级:班级:11 级软件工程级软件工程 学号:学号:201124134157 姓名:姓名:龙展鹏龙展鹏 课程名称:数据库系统原理 2012 -2013 学年度第 2 学期 课程类别:专业必修 实验时间:实验时间:2013 年年 06 月月 15 日日实验名称:触发器实验名称:触发器实验目的和要求:实验目的和要求:(1)理解触发器的触发过程和类型。(2)掌握创建触发器的方法。(3)掌握查看触发器的方法。(4)掌握修改触发器的方法。(5)掌握删除触发器的方法。实验软硬件要求:实验软硬件要求:为了使实验顺利进行,需要有一台计算机,计算

2、机必须安装 windows 2000,windows xp 或 windows NT 操作系统,还必须安装 Microsoft SQL 2000或 SQL Server 2005 任意一版本(个人版,标准版,企业版) 。实验开始前,必须将本章实验四中创建好的 SCDB 数据库和 ShiYan 数据库附加到当前 SQL 数据库服务器中。实验人员必须掌握数据更新操作的相关的概念,懂得数据的更新的主要类型及基本特点。实验内容、实验过程、所遇问题及其解决方法实验内容、实验过程、所遇问题及其解决方法实验内容:针对实验数据库 SHIYAN,完成以下相关触发器操作任务:(1)利用 Transact-SQL

3、语言为 S 表建立一个名为 s_insert 的 insert 触发器,通过s_insert 触发器以保证向 S 表中插入记录时 status 字段值要以 1、2、3、4或 5 字符打头。如果插入的记录的 status 字段值不是以 1、2、3、4 或 5 字符打头的,则拒绝插入该记录,并且输出提示信息“status 字段值不是以 1、2、3、4 或 5字符打头的!”实现语句:create trigger s_inserton s for insert as if(select count(*) from insertedwhere status like 1,2,3,4,5%)=0 begi

4、nprint status 字段不是以 1,2,3,4,5 字符打头的!rollback transaction end(2)利用“企业管理器”为 P 表建立一个名为 P_weight 的 update 触发器,通过P_weight 触发器以保证修改 P 表中数据时,限制 weight 字段的值在 1000 以内。如果修改后的记录的 weight 字段值超过了 1000,则拒绝修改记录,并却输出提示信息“当前被修改的记录的 weight 字段值不在 1000 之内,请重新给定该字段值。 ” ,否则可以修改记录,并且输出提示信息“当前被修改的记录的 weight 字段值满足要求,完成修改操作。

5、” 。实现语句: create trigger p_weight on p for update as if(select count(*) from insertedwhere weight1000)0 begin print 当前修改的 weight 字段不在 1000 以内,请重新输入字段值 rollback transaction end else print 当前修改记录的 weight 值满足要求,成功完成修改操作更新结果:(3)利用 Transact-SQL 语言为 J 表建立一个名为 j_delete 的 delete 触发器,通过j_delete 触发器保证在删除工程项目表

6、J 中记录时,该待删除记录的 SPJ 表中存在引用关系,并且对应的引用关系记录的供应数量 QTY 值不少于 50,则不能删除该工程项目记录,输出提示信息“不满足删除要求。 ” ;否则可以删除,输出提示信息“相应的工程项目信息已经成功删除。 ” 。实现语句: create trigger j_delete on j for delete as if( select count(*) from inserted,spj where inserted.jno=spj.jno and spj.qty50)0 begin print 不满足删除条件 rollback transaction end el

7、se print 相应的工程项目已经删除 运行结果:(4)利用 Transact-SQL 语言修改触发器 s_insert,修改后的 s_insert 触发器能保证在修改 S 表中数据记录时 s_insert 字段值不可以修改。实现语句: alter trigger s_insert on s for update as if(select count(*) from inserted,swhere inserted.status=s.status)0 beginprint status 字段不是以 1,2,3,4,5 字符打头的!rollback transaction end(5)将触发器

8、 s_insert 的名称更改为 s_insert_update。执行语句: exec sp_rename s_insert,s_status_update(6)*查看数据表 P 中所有的 inserted 触发器,并观察其执行结果。执行语句: exec sp_helptrigger p,inserted; 结果:(7)*查看触发器就 j_delete 的定义文本。执行语句: exec sp_helptext j_delete结果:(8)*查看触发器 p_weight 的所有者和创建日期。exec sp_help p_weight 结果:(9)*分别利用“企业产管理器”和 SQL 语言删除触发器 s_status_update。SQL 删除 drop trigger s_status_update实验总结及心得体会:实验总结及心得体会:通过本次实验,让我对触发器的概念和作用有了进一步认识,并且基本上掌握了触发器的创建和更新的 Transact-SQL 语句。理解触发器的触发过程和类型。掌握创建触发器的方法。评定成绩: 批阅教师: 年 月 日

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号