当前位置:文档之家› 数据库存储过程与触发器实验报告

数据库存储过程与触发器实验报告

南昌航空大学实验报告
二00 年月日
课程名称:数据库概论实验名称:数据库存储过程与触发器
班级:122031 姓名:同组人:
指导教师评定:签名:
一、实验环境
1.Windows2000或以上版本;
2.SQLServer 2005。

二、实验目的
熟悉不同数据库的存储过程和触发器,重点实践SQL Server2005,掌握SQL Server2005中有存储过程与触发器的相关知识。

三、实验要求
完成实验指导书中p115-7和p132 -4。

四、实验步骤及参考源代码
1.创建与执行存储过程
create procedure C_P_Proc as
select distinct o,cna,pna,num
from paper,customer,cp
where o=o and paper.pno=cp.pno and cna='李涛' or cna='钱金浩' go
execute C_P_Proc
2.删除存储过程
drop procedure C_P_Proc
3.创建插入触发器
create trigger TR_PAPER_I ON PAKER12203125
FOR INSERT AS
DECLARE @appr float
DECLARE @apno int
SELECT @appr=ppr,@apno=pno from inserted
begin
if @appr<0 or @appr is null
begin
raiserror('报纸的单价为空或小于!',16,1)
update paper set ppr=10
where paper.pno=@apno
end
end
4.创建删除触发器
create Trigger TR_PAPER_D on PAKER12203125
after delete as
declare @ipno char(6)
declare @icount int;
select @icount= count(*) from deleted,cp
where deleted.pno=cp.pno
if @icount>=1
begin
select @ipno=pno
from deleted
raiserror('级联删除cp表中的数据',16,1)
delete from cp where cp.pno=@ipno
end
5.创建修改触发器
create trigger TR_PAPER_U ON PAKER12203125
for update as
declare @ippr float
select @ippr=ppr from inserted
if @ippr<0 or @ippr is null
begin
raiserror('输入单价不正确',16,1)
rollback transaction
end
6. 分别对PAKER12203125表进行插入、修改、删除操作
insert into PAKER12203125 (pno,pna,ppr)values('000006','江西日报','1') insert into PAKER12203125 (pno,pna,ppr)values('000007','江南都市报','15.5') delete from PAKER12203125 where pno='000001'
update PAKER12203125 set ppr=12.5 where pno='000002'
update PAKER12203125 set ppr=-2 where pno='000004'
五、实验结果
12
3.4.56
六、实验体会
试验过后,巩固了自己在课堂上所学的知识,并加深了记忆与了解,对以后的使用有很大作用
在实验过程中,遇到一些困难,经过自己不断查找书籍并询问老师来解决问题,提高了自己的逻辑思维能力和动手能力。

相关主题