网站大量收购独家精品文档,联系QQ:2885784924

数据库实验 触发数据库实验 触发器.doc

数据库实验 触发数据库实验 触发器.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实 验 报 告 专业: 计算机软件工程 班级:11级软件工程 学号:201124134157 姓名:龙展鹏 课程名称:数据库系统原理 2012 -2013学年度第2学期 课程类别:专业必修 实验时间:2013 年 06 月 15日 实验名称:触发器 实验目的和要求: 理解触发器的触发过程和类型。 掌握创建触发器的方法。 掌握查看触发器的方法。 掌握修改触发器的方法。 掌握删除触发器的方法。 实验软硬件要求: 为了使实验顺利进行,需要有一台计算机,计算机必须安装windows 2000, windows xp或windows NT操作系统,还必须安装Microsoft SQL 2000 或SQL Server 2005任意一版本(个人版,标准版,企业版)。实验开始前,必须将本章实验四中创建好的SCDB数据库和ShiYan 数据库附加到当前SQL数据库服务器中。实验人员必须掌握数据更新操作的相关的概念,懂得数据的更新的主要类型及基本特点。 实验内容、实验过程、所遇问题及其解决方法 实验内容: 针对实验数据库SHIYAN,完成以下相关触发器操作任务: 利用Transact-SQL语言为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_insert on s for insert as if(select count(*) from inserted where status like [1,2,3,4,5]%)=0 begin print status字段不是以1,2,3,4,5字符打头的! rollback transaction end 利用“企业管理器”为P表建立一个名为P_weight的update触发器,通过P_weight触发器以保证修改P表中数据时,限制weight字段的值在1000以内。如果修改后的记录的weight字段值超过了1000,则拒绝修改记录,并却输出提示信息“当前被修改的记录的weight字段值不在1000之内,请重新给定该字段值。”,否则可以修改记录,并且输出提示信息“当前被修改的记录的weight字段值满足要求,完成修改操作。”。 实现语句: create trigger p_weight on p for update as if(select count(*) from inserted where weight1000)0 begin print 当前修改的weight字段不在1000以内,请重新输入字段值 rollback transaction end else print 当前修改记录的weight值满足要求,成功完成修改操作 更新结果: 利用Transact-SQL语言为J表建立一个名为j_delete的delete触发器,通过j_delete触发器保证在删除工程项目表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 else print 相应的工程项目已经删除 运行结果: 利用Transact-SQL语言修改触发器s_insert,修改后的s_insert触发器能保证在修改S表中数据记录时s_insert字段值不可以修改。 实现语句: alter trigger s_insert on s for update as if(select count(*) from inserted,s where inserted.status=s.status)0 begin print status字段不是以1,2,3,4,5字符打头的!

文档评论(0)

cduutang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档