数据库实验报告八信管1102郭明光.doc

数据库实验报告八信管1102郭明光.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库实验报告八信管1102郭明光

福建工程学院计算机与信息科学系 实验报告 2012 – 2013 学年第 一 学期 任课老师: 孙水华 课程名称 数据库实验 班级 信息管理 座号 20 姓名 郭明光 实验题目 实验八 触发器 实验时间 实验开始日期:2012.12.12 报告提交日期:2012.12. 17 实验目的、要求 实验目的 掌握SQLServer中触发器的使用方法。 二、实验内容 按照《数据库系统概论》的SPJ关系模式实现以下操作: 1、创建一个作用在P表上的的触发器P_Ins,确保用户在插入或更新数据时所提供的WEIGHT值是非负和非零的,否则给出错误提示并回滚此操作。请测试该触发器。测试方法自定。 2、创建一个作用在J表上的的触发器J_Update,禁止同时修改项目的名称和所在城市,并进行相应的错误提示。请测试该触发器。测试方法自定。 3、首先在数据库中使用SELECT INTO 语句创建一个新表 实验设计内容 create trigger P_Ins on p for update,insert as declare @a int,@b int select @a=weight from deleted select @b=weight from inserted if @a=0 or @b=0 begin print 插入失败 raiserror(WEIGHT值是非负和非零的,16,1) rollback transaction end drop trigger P_Ins insert into p values(p8,螺母,蓝,0) update p set weight=-9 where pno=p1 alter table p enable trigger P_Ins create trigger J_Update on j for update as if update(jname) and update(city) begin print 操作失败 raiserror(禁止同时修改项目的名称和所在城市,16,1) rollback transaction end update j set jname=一汽,city=福州 where jno=j1 select spj.jno,jname,pname,spj.pno,sum(qty) qty into J_P_QTY from spj,p,j where spj.pno=p.pno and spj.jno=j.jno group by spj.pno,spj.jno,jname,pname create trigger k on spj for insert as declare @a char(4) select @a=pno from inserted if not exists (select * from J_P_QTY where @a=pno ) begin print 插入失败 raiserror(PNO的值在J_P_QTY中不曾存在,16,1) rollback transaction end insert into spj values(s3,p4,j1,100) insert into p values(p8,螺母,蓝,0) select spj.jno,jname,pname,spj.pno,sum(qty) qty into J_P_QTY from spj,p,j where spj.pno=p.pno and spj.jno=j.jno group by spj.pno,spj.jno,jname,pname create trigger n on spj for insert as declare @a char(4),@b char(4),@c int select @a=pno,@b=jno,@c=qty from inserted update J_P_QTY set qty=qty+@c where @a=pno and @b=jno create trigger z on spj for insert as declare @a char(4),@b char(4),@c int select @a=pno,@b=jno,@c=qty from inserted if @a=J_P_QTY.pno and @b=J_P_QTY.jno begin update J_P_QTY set qty=qty+@c end insert into spj values(s4,p1,j1,100) drop trigger n

文档评论(0)

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

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

1亿VIP精品文档

相关文档