《数据库存储器与触发器试验报告》由会员分享,可在线阅读,更多相关《数据库存储器与触发器试验报告(9页珍藏版)》请在金锄头文库上搜索。
1、南 昌 航 空 大 学 实 验 报 二0七年 5月 3 B 课程名称: 数据库概论 实验名称: 存储器与触发器 _ 班级: XX X 姓名:XXX 同组人: 指导教师评定: _ 签名: _ 一实验环境 1Windows2000 或以上版本; 2. SQLServer2000 或 2005。 二、实验目的 1.掌握存储过程的创建,修改,使用,删除; 2 掌握触发器的创建,修改,使用,删除。 三、实验步骤及参考源代码 1 创建过程代码: CREATEPROCEDURI_P_Proc( ccna varchar (10), cnochar OUTPU,Tcna varchar (10) OUTPU,
2、Tpnavarchar (20) OUTPU,Tnumint OUTPUTAS SELECTcna=cna, cno=cp. eno, pna=pna, num=num FROMcp , customer, paper WHEREcustomer. eno=cp. eno ANDpaper. pno=cp. pno ANDena =ccna; 6执行存储过程 C_P_Pro,实现对李涛,钱金浩等不同顾客的订阅信息查询 execute C_P_Proc nam=e,李涛 execute C_P_Proc nam=e!钱金浩 1 7,删除存储过程 C_P_Prcc DROPPROCEDURCE_P
3、_PROC (4)在 DingBao 数据库中针对 PAPER 创建插入触发器 TR_PAPER_I 删除触发器 TR PAPER D 修改触发器 TR PAPER J 具体要求如下。 v1对 PAPER 的插入触发器:插入报纸记录,单价为负值或为空时,设定为 10 元。 CREATE TRIGGER TR_PAPERON paper FOR INSERT AS DECLARE ippr FLOAT; declare ipno int;SELECT ippr=ppr,ipno=pno from inserted begin if ippr对 PAPER 勺删除触发器:要删除的记录,若正在被订阅
4、表 CP 参照时,级联 删除订阅表中相关的订阅记录。 create trigger TR_Paper_D on paper in stead of delete as declare icount int;select icount=count(*)from deleted,Cp where deleted.p no=Cp.pno if icount=1 begin declare ipno int select ipno=deleted.pno from deleted delete from cp where pno=ipno end delete from paper where pno
5、 = *000007 select * from paper 对 PAPER 勺修改触发器:当报纸的单价修改为负值或为空时,提示“输入单价 不正确!”的信息,并取消修改操作。 create trigger TR_Paper_U on paper for update asdeclare ippr float; select ippr=ppr from inserted if ippr0 or ippr is null begin raiserror(输入单价不正确!16,1) rollback transaction end update paper set ppr where pno =000004 创建 DDL 触发器,阻止对 DingBao 数据库的修改 CREATETRIGGERsafety ONDATABASEFORALTER_TABLE, DROP_TABLEAS PRINT 你必须失效 DDL 触发器”safety”后,才能删除或修改数据库表 ROLLBAC;K 执行: DROPTABLEcp四,实验体会 通过这次的存储器和触发器的实验,让我学会了存储器和触发器的创建,修改,使 用和删除操作,也了解存储器和触发器在数据库中的作用。