仓库管理系统数据库的设计与实现 sql server

上传人:mg****85 文档编号:35754716 上传时间:2018-03-20 格式:DOC 页数:11 大小:429.55KB
返回 下载 相关 举报
仓库管理系统数据库的设计与实现 sql server_第1页
第1页 / 共11页
仓库管理系统数据库的设计与实现 sql server_第2页
第2页 / 共11页
仓库管理系统数据库的设计与实现 sql server_第3页
第3页 / 共11页
仓库管理系统数据库的设计与实现 sql server_第4页
第4页 / 共11页
仓库管理系统数据库的设计与实现 sql server_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《仓库管理系统数据库的设计与实现 sql server》由会员分享,可在线阅读,更多相关《仓库管理系统数据库的设计与实现 sql server(11页珍藏版)》请在金锄头文库上搜索。

1、 实验题目:仓库管理系统数据库的设计与实现描述:设计一个仓库管理系统,实现下列功能: 零件信息登记(包括种类,名称和库存数量等信息) ; 零件进库登记(包括种类,名称和库存数量等信息) ; 零件出库登记(包括种类,名称和库存数量等信息) ;实验代码和实验结果和实验总结:在实验代码中分别应用了相关实验操作的结果,通过上一个结果截图与其随后的结果 截图和相关代码对比课已看出相关代码的作用(主要是各个触发器的作用) 。- -数据库的创建 create database 仓库管理系统数据库 on primary ( name = 仓库管理系统数据库_data,filename =E:仓库管理系统数据库

2、_Data.MDF,size = 50,maxsize = 500,filegrowth = 5)log on ( name = 仓库管理系统数据库_log,filename =E:仓库管理系统数据库_Log.LDF,size = 10,maxsize = 200,filegrowth = 5) - -数据表的创建use 仓库管理系统数据库create table 零件信息登记 ( 零件代号 char(10) primary key,名称 char(10) not null,种类 char(10) not null ,价格 numeric(10,2) not null,库存数量 int def

3、ault 0)create table 零件进库登记 (零件代号 char(10) foreign key references 零件信息登记(零件代号) ,进货代号 int ,进货人工作号 char(10),名称 char(10) not null,种类 char(10) not null ,价格 numeric(10,2) not null,进库数量 int not null default 0,存放位置 char(10) not null,进库时间 datetime , primary key (零件代号,进货代号)create table 零件出库登记 (零件代号 char(10) f

4、oreign key references 零件信息登记(零件代号) ,出货代号 int ,出货人工作号 char(10) not null, 名称 char(10) not null,种类 char(10) not null ,价格 numeric(10,2) not null, 出库数量 int not null default 0,取货单号 char(10) not null,出库时间 datetime ,primary key(零件代号,出货代号)- -通过存储过程来实现表中数据的输入create procedure pro_ins1 (no char(20), name char(2

5、0), class char(20), s numeric(10,2), num int) as insert into 零件信息登记 values(no, name, class, s, num)create procedure pro_ins2 (no char(20),jno int,wno char(10), name char(20), class char(20), s numeric(10,2), num int, m char(20) ) as declare time datetime set time = getdate() insert into 零件进库登记 value

6、s(no, jno ,wno ,name, class, s, num, m, time)create procedure pro_ins3 (no char(20),jno int,wno char(10), name char(20), class char(20), s numeric(10,2), num int, m char(20) as declare time datetimeset time = getdate() insert into 零件出库登记 values(no,jno ,wno , name, class, s, num, m, time)create proce

7、dure pro_select as begin select * from 零件信息登记 select * from 零件进库登记 select * from 零件出库登记 end- -通过第一个存储过程来实现零件的信息登录exec pro_ins1 20112001,螺栓,金属,5.2,50 exec pro_ins1 20112002,龙头,金属,9.3,70 exec pro_ins1 20112003,水杯,塑料,36.8,80 exec pro_ins1 20112004,书包,布料,52,150 exec pro_ins1 20112005,电视,电子,4000,50- - -当

8、零件进库时通过下面的触发器来实现数据的完整性create trigger tri_统一零件管理 on 零件进库登记 instead of insert as beginif(exists (select 零件代号 from 零件信息登记 where 零件代号 = (select 零件代号 from inserted)begin print 在库里已经此零件,并且放置成功 update 零件信息登记 set 库存数量 = 库存数量 + (select 进库数量 from inserted ) where 零件代号 = (select 零件代号 from inserted)endif(not ex

9、ists (select 零件代号 from 零件信息登记 where 零件代号 = (select 零件代号 from inserted)begin print 库里不存在此零件,已经把此零件加入零件信息登记中 insert into 零件信息登记 select 零件代号,名称,种类,价格,进库数量 from inserted insert into 零件进库登记 select 零件代号,进货代号,进货人工作号,名称,种类,价格,进库数量,存放位置,进库时间 from insertedend End- -对触发器“tri_统一零件管理”的相关验证信息 exec pro_selectexec

10、pro_ins2 20112002,1120,c2011a,龙头,金属,9.3,70,一排号 exec pro_ins2 20112009,1122,c2011b,电池,金属,8.3,150,一排号 exec pro_ins2 20112012,1132,c2011c,水桶,塑料,7.9,130,二排号 exec pro_ins2 20112013,1134,a2012d,饮料,食品,54,200,二排号exec pro_select-drop trigger tri_统一零件出库 -当零件出库时通过下面的触发器来实现数据的完整性create trigger tri_统一零件出库 on 零件出

11、库登记 instead of insert as if exists(select 零件代号 from 零件信息登记 where 零件代号 = (select 零件代号 from inserted) beginprint 次零件存在if exists(select 零件代号 from 零件信息登记 where 零件代号 = (select 零件代号 from inserted) and 库存数量=(select 出库数量 from inserted)beginbeginprint 零件库存够出售update 零件信息登记set 库存数量 = 库存数量 -(select 出库数量 from in

12、serted)where 零件代号 = (select 零件代号 from inserted)end insert into 零件出库登记 select 零件代号,出货代号,出货人工作号,名称,种类,价格,出库数量,取货单号,出库时间 from insertedendelsebeginprint 零件库存数量不够,不能出售!endend else beginprint 仓库里没有此零件,请通知公司 end-对触发器“tri_统一零件管理”的相关验证信息exec pro_ins3 20112002,1120,f112a,龙头,金属,9.3,10,东华理工 exec pro_ins3 201120

13、04,1143,f113a,书包,布料,52,1000,南昌 exec pro_ins3 20112045,1220,f114b,铅笔,用具,9.3,10,江西 exec pro_ins3 20112046,1128,g112a,锁,金属,9.3,10,云南exec pro_select- -对“零件进库登记”数据更改是触发对“零件信息登记”的更改 -同时防止对“零件进库登记”信息的非法更改create trigger tri_up零件进库 on 零件进库登记after update as if exists(select 零件代号 from deleted where 零件代号=(selec

14、t 零件代号 from inserted)and 进货代号=(select 进货代号 from inserted)and 进库数量(select 进库时间 from inserted)update 零件信息登记set 库存数量 = 库存数量+(select 进库数量 from inserted)-(select 进库数量 from deleted) else if exists(select 零件代号 from deleted where 零件代号=(select 零件代号 from inserted)and 进货代号=(select 进货代号 from inserted)and 进库数量(select 出货代号 from inserted)update 零件信息登记set 库存数量 = 库存数量+(select 出库数量 from inserted)-(select 出库数量 from deleted) else begin print 修改不正确 end -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号