《数据库实验触发器.doc》由会员分享,可在线阅读,更多相关《数据库实验触发器.doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实 验 报 告专业: 计算机软件工程 班级:11级软件工程 学号:7 姓名:龙展鹏 课程名称:数据库系统原理 2012 -2013学年度第2学期 课程类别:专业必修 实验时间:2013 年 06 月 15日实验名称:触发器实验目的和要求:(1) 理解触发器的触发过程和类型。(2) 掌握创建触发器的方法。(3) 掌握查看触发器的方法。(4) 掌握修改触发器的方法。(5) 掌握删除触发器的方法。实验软硬件要求:为了使实验顺利进行,需要有一台计算机,计算机必须安装windows 2000,windows xp或windows NT操作系统,还必须安装Microsoft SQL 2000或SQL Se
2、rver 2005任意一版本(个人版,标准版,企业版)。实验开始前,必须将本章实验四中创建好的SCDB数据库和ShiYan 数据库附加到当前SQL数据库服务器中。实验人员必须掌握数据更新操作的相关的概念,懂得数据的更新的主要类型及基本特点。实验内容、实验过程、所遇问题及其解决方法实验内容:针对实验数据库SHIYAN,完成以下相关触发器操作任务:(1) 利用Transact-SQL语言为S表建立一个名为s_insert的insert触发器,通过s_insert触发器以保证向S表中插入记录时status字段值要以1、2、3、4或5字符打头。如果插入的记录的status字段值不是以1、2、3、4或5
3、字符打头的,则拒绝插入该记录,并且输出提示信息“status字段值不是以1、2、3、4或5字符打头的!”实现语句:create trigger s_inserton sfor insertas if(select count(*) from inserted where status like 1,2,3,4,5%)=0begin print status字段不是以1,2,3,4,5字符打头的! rollback transactionend(2) 利用“企业管理器”为P表建立一个名为P_weight的update触发器,通过P_weight触发器以保证修改P表中数据时,限制weight字段的
4、值在1000以内。如果修改后的记录的weight字段值超过了1000,则拒绝修改记录,并却输出提示信息“当前被修改的记录的weight字段值不在1000之内,请重新给定该字段值。”,否则可以修改记录,并且输出提示信息“当前被修改的记录的weight字段值满足要求,完成修改操作。”。实现语句:create trigger p_weighton pfor updateas if(select count(*) from inserted where weight1000)0beginprint 当前修改的weight字段不在1000以内,请重新输入字段值rollback transactionen
5、delseprint 当前修改记录的weight值满足要求,成功完成修改操作 更新结果:(3) 利用Transact-SQL语言为J表建立一个名为j_delete的delete触发器,通过j_delete触发器保证在删除工程项目表J中记录时,该待删除记录的SPJ表中存在引用关系,并且对应的引用关系记录的供应数量QTY值不少于50,则不能删除该工程项目记录,输出提示信息“不满足删除要求。”;否则可以删除,输出提示信息“相应的工程项目信息已经成功删除。”。实现语句:create trigger j_deleteon jfor deleteas if(select count(*)from inse
6、rted,spjwhere inserted.jno=spj.jno and spj.qty50)0beginprint 不满足删除条件rollback transactionendelseprint 相应的工程项目已经删除运行结果:(4) 利用Transact-SQL语言修改触发器s_insert,修改后的s_insert触发器能保证在修改S表中数据记录时s_insert字段值不可以修改。实现语句:alter trigger s_inserton sfor updateas if(select count(*) from inserted,s where inserted.status=s.
7、status)0begin print status字段不是以1,2,3,4,5字符打头的! rollback transactionend(5) 将触发器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语句。理解触发器的触发过程和类型。掌握创建触发器的方法。评定成绩: 批阅教师: 年 月 日
限制150内