资源预览内容
第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
亲,该文档总共7页全部预览完了,如果喜欢就下载吧!
资源描述
南昌航空大学实验报告二0一 七 年 5 月 3 日课程名称: 数据库概论 实验名称: 存储器与触发器 班级: xxx 姓名: xxx 同组人: 指导教师评定: 签名: 一、实验环境1 Windows2000或以上版本;2 SQLServer2000或2005。二、实验目的1 掌握存储过程的创建,修改,使用,删除;2 掌握触发器的创建,修改,使用,删除。三、实验步骤及参考源代码1.创建过程代码:CREATE PROCEDURE C_P_Proc(ccna varchar(10),cno char(4) OUTPUT,cna varchar(10) OUTPUT,pna varchar(20) OUTPUT,num int OUTPUT) ASSELECT cna=cna,cno=cp.cno,pna=pna,num=numFROM cp,customer,paperWHERE customer.cno=cp.cno AND paper.pno=cp.pno AND cna=ccna;6.执行存储过程C_P_Pro,实现对李涛,钱金浩等不同顾客的订阅信息查询execute C_P_Proc name=李涛execute C_P_Proc name=钱金浩7,删除存储过程C_P_PrccDROP PROCEDURE C_P_PROC(4)在DingBao数据库中针对PAPER创建插入触发器TR_PAPER_I、删除触发器TR_PAPER_D、修改触发器TR_PAPER_U。具体要求如下。对PAPER的插入触发器:插入报纸记录,单价为负值或为空时,设定为10元。CREATE TRIGGER TR_PAPER_I ON paperFOR INSERT ASDECLARE ippr FLOAT;declare ipno int;SELECT ippr=ppr,ipno=pno from insertedbeginif ippr0 or ippr is NULLbeginraiserror(报纸的单价为空或小于零!,16,1)update paper set ppr=10where paper.pno=ipnoendendINSERT INTO paper(pno,pna,ppr) VALUES(000007,青年报,-2) select * from paper对PAPER的删除触发器:要删除的记录,若正在被订阅表CP参照时,级联删除订阅表中相关的订阅记录。create trigger TR_Paper_D on paperinstead of delete asdeclare icount int;select icount=count(*)from deleted,Cp wheredeleted.pno=Cp.pnoif icount=1begindeclare ipno intselect ipno=deleted.pnofrom deleteddelete from cpwhere pno=ipnoenddelete from paper where pno = 000007 select * from paper对PAPER的修改触发器:当报纸的单价修改为负值或为空时,提示“输入单价不正确!”的信息,并取消修改操作。create trigger TR_Paper_U on paperfor update asdeclare ippr float;select ippr=ppr from insertedif ippr0 or ippr is nullbeginraiserror(输入单价不正确!,16,1)rollback transactionendupdate paper set ppr=-1 where pno=000004创建DDL触发器,阻止对DingBao数据库的修改CREATE TRIGGER safety ON DATABASE FOR ALTER_TABLE,DROP_TABLE ASPRINT你必须失效DDL触发器safety后,才能删除或修改数据库表ROLLBACK;执行:DROP TABLE cp四,实验体会通过这次的存储器和触发器的实验,让我学会了存储器和触发器的创建,修改,使用和删除操作,也了解存储器和触发器在数据库中的作用。
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号