欢迎来到文档下载导航网!

数据库原理 实验四 存储过程与触发器、函数.doc

时间:2020-11-26|当前位置:首页 > 计算机 > 计算机资料/编程 > |用户下载:

数据库原理 实验四 存储过程与触发器、函数.doc


本文档部分文本预览

数据库原理 实验四 存储过程与触发器、函数 2012级计算机专业 集美大学计算机工程学院 2013~2014年第一学期 《数据库原理》实验报告 题目:实验四 存储过程与触发器、函数 班级: 计算12 姓名: 学号: 日期:2014.05 指导老师:林颖贤 成 绩 一、实验目的: 1、掌握创建存储过程的方法和步骤; 2、掌握创建触发器的方法和步骤; 3、掌握用户自定义函数的类型及使用方法。 二、实验使用环境: Windows 7 x64、SQL Server 2005 三、实验内容与完成情况: 1、增加一张库存表Inventoy,包括:商品编号、价格、库存数量、入库时间(默认值为系统时间)。 create table Inventory( Goo_no char(8) not null, Inv_num int null, Inv_date datetime not null, primary key(Goo_no,Inv_date)); ALTER TABLE Inventory ADD CONSTRAINT Inv_date default getdate() for Inv_date; select * from Inventory 2、从Purchase (进货表)和Sell(销售表)中备份空记录表: PurchaseBak和Sell1Bak。 if(not exists(select name from sysobjects where name=‘PurchaseBak’)) ( select * into PurchaseBak from Purchase where(1=0)) if(not exists(select name from sysobjects where name=‘SellBak’)) ( select * into SellBak from Sell where(1=0)) 2012级计算机专业 集美大学计算机工程学院 2013~2014年第一学期 3、创建一个触发器。向进货表中插入一条记录时,这个触发器都将更新库存表。如果库存有该类商品时,那么该商品的进价即为两次进价的平均值(因为每次的进价可能会不相同),库存量为原有库存加该次进货数量;(算法为:(库存商品进价*库存量+进货价*进货量)/(库存量+进货量);如果没有该商品,则插入到库存表中。 create trigger tri_Purchase on Purchase for insert as begin declare @Pur_prices money,@Pur_num int,@Goo_no char(8), @Inv_num int,@Inv_prices money select @Goo_no=Goo_no,@Pur_num=Pur_num,@Pur_prices=Pur_prices from inserted if(@Goo_no in (select Goo_no from Inventory)) begin select @Inv_prices=Inv_prices,@Inv_num=Inv_num from Inventory where(@Goo_no=Goo_no) update Inventory set Inv_prices=(@Inv_prices*@Inv_num+@Pur_prices*@Pur_num)/(@Inv_num+@Pur_num), Inv_num=(@Inv_num+@Pur_num),Inv_date=getdate() where (Goo_no=@Goo_no) end else insert into Inventory(Goo_no,Inv_prices,Inv_num,Inv_date) values(@Goo_no,@Pur_prices,@Pur_num,getdate()) end insert into Purchase(Pur_no,Pur_prices,Pur_num,Pur_date,Goo_no,Emp_no) values(106,3600,20,’2014-5-19’,’JY000001’,1001) select * from Inventory insert into Purchase(Pur_no,Pur_prices,Pur_num,Pur_date,Goo_no,Emp_no) values(106,3200,50,’2014-5-22’,’JY000001’,1001) select * from Inventory 4、创建一个触发器。向销售表中插入一条记录时,这个触发器将更新库存表。库存量为原有库存量减去销售数量。如果库存数量少于10,则显示”该商品库存数量少于10,请及时进货”;如果库存不足,则显示:“‘库存不足’”。 2012级计算机专业 集美大学计算机工程学院 2013~2014年第一学期 create trigger tri_Sell on Sell for Insert as begin declare @Sell_num int,@Inv_num int,@Goo_no char(8) select @Sell_num=Sell_num,@Goo_no=Goo_no from inserted select @Inv_num=Inv_num from Inventory where Goo_no=@Goo_no if(@Goo_no in (select Goo_no from Inventory)) if(@Inv_num>0 and @Inv_num>@Sell_num) begin update Inventory set Inv_num=(@Inv_num-@Sell_num) where(Goo_no=@Goo_no) select @Inv_num=Inv_num from Inventory where Goo_no=@Goo_no if(@Inv_num between 0 and 10) print’该商品库存数量少于,请及时进货!’ end else begin print’库存不足!’ rollback transaction end else print’该商品不存在,售出失败!’ end insert into Sell va

继续预览文档剩余内容

温馨提示:本页预览文本内容并非错乱,是从文档中提取部分无格式预览!如您需要正常预览文档全文,请点击下方按钮↓↓↓

上一篇:数据库原理与应用 复习模拟试卷2.doc

栏    目:计算机资料/编程

下一篇:数据结构 实验报告五 最短路径.doc

本文标题:数据库原理 实验四 存储过程与触发器、函数.doc

本文地址:https://www.365weibook.com/html/20201126/376932.html

    正常预览或下载提示:

    本页面文档预览是由服务器自动提取的部分内容,并不是文档错乱。如您需要预览全文或下载文档,请点击页面左侧(点击去预览文档全文或下载文档)按钮,进行全文预览或下载。

推荐下载

联系我们 | 广告投放 |网站地图

免责申明:本网站不提供任何形式的下载服务,因此与之有关的知识产权纠纷本网站不承担任何责任。

如果侵犯了您的权利,请与我们联系,我们将进行删除处理。