资源描述
南昌航空大学实验报告二0 年5 月 3 日课程名称:数据库概论实验名称:存储器与触发器班级: XXX姓名: XXX 同组人: 指导教师评定: 签名:一、实验环境1. Win dows2000或以上版本;2. SQLServer2000或 2005。二、实验目的1. 掌握存储过程的创建,修改,使用,删除;2. 掌握触发器的创建,修改,使用,删除。三、实验步骤及参考源代码1.创建过程代码:CREATEPROCEDURE_P_Proc(ccna varchar (10), cno char(4) OUTPUTcnavarchar (10) OUTPUTPna varchar (20) OUTPUTSnumint OUTPUTASSELECTcna=cna, cn(=, pn=pna, numnumFROMtp , customer, paperWHER匡 AND = ANDcna =ccna6. 执行存储过程C_P_Pro,实现对李涛,钱金浩等不同顾客的订阅信息查询execute C_P_Proc name 李涛execute C_P_Proc name 钱金浩7, 删除存储过程C_P_PrccDROPPROCEDUIC_P_PROC(4)在DingBao数据库中针对PAPE创建插入触发器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 =ipnoendendINSERTINTOpaper (pno, pna, ppr) VALUE(S000007 , 青年报 ,- 2) select * from paper对PAPER勺删除触发器:要删除的记录,若正在被订阅表CP参照时,级联删除订阅表中相关的订阅记录。create trigger TR_Paper_D on paperinstead of delete asdeclare icount int;select icount=count(*)from deleted,Cp whereif icount=1begindeclare ipno intselect ipno=from deleteddelete from cpwhere pno=ipnoenddelete from paperwhere 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 paperset ppr =-1where pno =000004创建DDL触发器,阻止对DingBao数据库的修改CREATETRIGGERsafety ONDATABASEFORALTER_TABLE, DROP_TABLEAS PRINT你必须失效DD触发器safety后,才能删除或修改数据库表 ROLLBAC;K执行 :DROPTABLEcp四,实验体会通过这次的存储器和触发器的实验,让我学会了存储器和触发器的创建,修改,使用和删除操作,也了解存储器和触发器在数据库中的作用。
展开阅读全文