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

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

ID:47517871

大小:144.00 KB

页数:8页

时间:2020-01-12

数据库实验报告八信管1102郭明光_第1页
数据库实验报告八信管1102郭明光_第2页
数据库实验报告八信管1102郭明光_第3页
数据库实验报告八信管1102郭明光_第4页
数据库实验报告八信管1102郭明光_第5页
资源描述:

《数据库实验报告八信管1102郭明光》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、福建工程学院计算机与信息科学系实验报告2012–2013学年第一学期任课老师:孙水华课程名称数据库实验班级信息管理座号20姓名郭明光实验题目实验八触发器实验时间实验开始日期:2012.12.12报告提交日期:2012.12.17实验目的、要求实验目的掌握SQLServer中触发器的使用方法。二、实验内容按照《数据库系统概论》的SPJ关系模式实现以下操作:1、创建一个作用在P表上的的触发器P_Ins,确保用户在插入或更新数据时所提供的WEIGHT值是非负和非零的,否则给出错误提示并回滚此操作。请测试该触发器。测试方法自定。2、创建一个作用在J表上的的触发

2、器J_Update,禁止同时修改项目的名称和所在城市,并进行相应的错误提示。请测试该触发器。测试方法自定。3、首先在数据库中使用SELECTINTO语句从SPJ、J、P表中创建一个新表J_P_QTY。表中的属性列包括:工程号、工程名、零件号、零件名及总数量,其中总数量的值是各工程使用各种零件的数量总和(不考虑零件是由哪个供应商提供的)。然后创建一个作用在SPJ表上的Insert型触发器,该触发器能完成两项任务:1)当用户插入的JNO使用的PNO的值在J_P_QTY中不曾存在时禁止插入;2)每当在SPJ表中插入一条合理记录时,使J_P_QTY表的QTY列

3、的值保持同步更新。请测试该触发器。测试方法自定。三、实验要求:1、记录完整语句。在实验过程注意验证语句的执行效果。2、记录实验过程中发生的有学习意义的错误及错误信息。四、实验小结实验设计内容createtriggerP_Insonpforupdate,insertasdeclare@aint,@bintselect@a=weightfromdeletedselect@b=weightfrominsertedif@a<=0or@b<=0beginprint'插入失败'raiserror('WEIGHT值是非负和非零的',16,1)rollbacktran

4、sactionenddroptriggerP_Insinsertintopvalues('p8','螺母','蓝',0)updatepsetweight=-9wherepno='p1'altertablepenabletriggerP_InscreatetriggerJ_Updateonjforupdateasifupdate(jname)andupdate(city)beginprint'操作失败'raiserror('禁止同时修改项目的名称和所在城市',16,1)rollbacktransactionendupdatejsetjname='一汽',

5、city='福州'wherejno='j1'selectspj.jno,jname,pname,spj.pno,sum(qty)qtyintoJ_P_QTYfromspj,p,jwherespj.pno=p.pnoandspj.jno=j.jnogroupbyspj.pno,spj.jno,jname,pnamecreatetriggerkonspjforinsertasdeclare@achar(4)select@a=pnofrominsertedifnotexists(select*fromJ_P_QTYwhere@a=pno)beginprint

6、'插入失败'raiserror('PNO的值在J_P_QTY中不曾存在',16,1)rollbacktransactionendinsertintospjvalues('s3','p4','j1','100')insertintopvalues('p8','螺母','蓝',0)selectspj.jno,jname,pname,spj.pno,sum(qty)qtyintoJ_P_QTYfromspj,p,jwherespj.pno=p.pnoandspj.jno=j.jnogroupbyspj.pno,spj.jno,jname,pnamecreat

7、etriggernonspjforinsertasdeclare@achar(4),@bchar(4),@cintselect@a=pno,@b=jno,@c=qtyfrominsertedupdateJ_P_QTYsetqty=qty+@cwhere@a=pnoand@b=jnocreatetriggerzonspjforinsertasdeclare@achar(4),@bchar(4),@cintselect@a=pno,@b=jno,@c=qtyfrominsertedif@a=J_P_QTY.pnoand@b=J_P_QTY.jnobegin

8、updateJ_P_QTYsetqty=qty+@cendinsertintospjvalue

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。