仓库管理系统数据库设计和实现SQLserver_第1页
仓库管理系统数据库设计和实现SQLserver_第2页
仓库管理系统数据库设计和实现SQLserver_第3页
仓库管理系统数据库设计和实现SQLserver_第4页
仓库管理系统数据库设计和实现SQLserver_第5页
免费预览已结束,剩余5页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、ze = 50,maxsize = 500, filegrowth = 5)log on(name =仓库管理系统数据库_log,filename =仓库管理系统数据库 _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 default 0)create table

3、零件进库登记(零件代号 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) foreign key references 零件信息登

4、记(零件代号),出货代号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(20), classchar(20), s numeric(10,2),

5、 num int)asinsert 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)asdeclare time datetimeset time = getdate()insert into零件进库登记values(no, jno ,wno ,name, class, s, num, m, time)crea

6、te 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 datetime set time = getdate()insert into零件出库登记values(no,jno ,wno ,name, class, s,num, m, time) create procedure pro_selectasbeginselect *from零件信息登记select *from零件

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

8、112005','电视','电子',4000,50- -当零件进库时通过下面的触发器来实现数据的完整性create trigger tri_ 统一零件管理on零件进库登记instead of insertasbeginif (exists (select零件代号 from 零件信息登记 where零件代号 =(select零件代号 from inserted)beginprint '在库里已经此零件,并且放置成功 update零件信息登记set库存数量 =库存数量 + (select进库数量 from inserted )where 零件代号=(

9、select 零件代号 from inserted)endif (not exists (select零件代号from 零件信息登记where零件代号=(select零件代号from inserted)beginprint '库里不存在此零件,已经把此零件加入零件信息登记中'insert into零件信息登记select零件彳弋号,名称,种类,价格,进库数量from insertedinsert into零件进库登记select零件彳弋号,进货彳弋号,进货人工作号,名称,种类,价格,进库数量,存放位置,进库时间 from insertedendEnd-对触发器“tri统一零件管

10、理”的相关验证信息exec pro_selectE结果心相零件代号名静种类价格库存数量1.UIIWI UIIMIIdll UI IbllMllfal 20112001 j蛭栓金属5.2050220112002龙头金属9加70320112M3水杯塑料拓B080420112004书包布料&2,OT150520112005电视电子4D00.OT50零件代号进货代目进货人工作号名称种类价格进库椀里存旅位置进库时间零件代号出货代号出货人工作邑名称榨价格出屋赖里取货单号出库B4间exec pro_ins2 '20112002',1120,'c2011a',龙头

11、9;,'金属',9.3,70,'一排号exec pro_ins2 '20112009',1122,匕2011b','电池',金属',8.3,150,'一排号'exec pro_ins2 '20112012',1132,匕2011c','水桶','塑料',7.9,130,二排号'exec pro_ins2 '20112013',1134,'a2012d','饮料','食品',54,2

12、00,二排号'在库里已经此零件,并且放置成功 :工行受影响:工行受膏响,库里不存在此零件,已经把此零件加入零件信息登记中行受葡响,:工行受影响j行受响'库里不存在此零件,已经把此零件加入零件信息登记中:1行受影响,: 1行受影晌,工行受膏响,库里不存在此零件J已经把此零件加入零件信息登记中:L行受影响1工行受影响工行受影响exec pro_select 电结果岛_消息零件代号名称种类价格库存戴里1| 2D112D01I螺栓金属5.2D5D22A112002龙头金属3 30140320112003水杯塑料30042D112D04书笆布料52.001505司112005电视电子4O

13、T0.0050620112009电池金属B.3D15D720112012水桶塑料790伽B20112013饮料食品54.00200霎件代号进部号进货人工作号名称种类价格进库数里存液位蚩进库时间1301120091 1122地11b电池金属B.30150一排。鸿2012-12-11 2ft1Q34.64022D112D121132c2fl11c水桶塑料7.50130二排哨2012-12-11 2D: 1 口承.64 口3司 1120131134母加12d饮料食品200二排1居21)12-12-1120:10 34.零件代号出货代号出货人工作号名称种类船格出库数里取接单号出库时间-drop tri

14、gger tri_ 统一零件出库-当零件出库时通过下面的触发器来实现数据的完整性create trigger tri_统一零件出库on零件出库登记instead of insertasif exists(select零件代号 from零件信息登记 where零件代号=(select零件代号 frominserted)beginprint '次零件存在'if exists(select零件代号 from零件信息登记where零件代号 =(select零件代号 frominserted)and 库存数量 >=(select 出库数量 from inserted)beginbe

15、ginprint '零件库存够出售update零件信息登记set库存数量 =库存数量 -(select出库数量 from inserted)where 零件代号 =(select 零件代号 from inserted)endinsert into零件出库登记select零件彳t号,出货代号,出货人工作号,名称,种类,价格,出库数量,取货单号,出库时间from insertedendelsebeginprint零件库存数量不够,不能出售!endendelsebeginprint '仓库里没有此零件,请通知公司end-对触发器“tri统一零件管理”的相关验证信息execpro_in

16、s3 '20112002',1120,'f112a',龙头','金属',9.3,10,东华理工execpro_ins3 '20112004',1143,'f113a','书包','布料',52,1000,'南昌'execpro_ins3 '20112045',1220,'f114b',铅笔,用具,9.3,10,'江西'exec pro_ins3 '20112046',1128,'g112a

17、','锁','金属',9.3,10,'云南'3消息次零件存在 零件库存回妣售工行受影响):工行受膏响)行受影响I次零件存在零件库存熨量不够,不能出售!t工行受影响仓库里没有此零件.请通知公司(1行受要响仓库里没有此零件,请通知公司:工行受影响Iexec pro_select口结果L3消息零件代号台种类价格库存数里120112001 | 螺栓 金属 52050220112DQ2 龙头 金属 9.30130320112003 水杯 复料 38 SO B0二20112DM 书包布料 52.DD150520112005 电视电子 40M.D0 5

18、0620112DD9 电池 金属 &30150720112012 水桶 塑料 7.90130320112013 供料 食品 M.OT 200零件用号进货代骂进货人工作号名称种类7介格进库数里存放位置进库时间1 rnKin1120112009 I 1122c2011b电池 金属 RJO 区一#0&号 2012121120:10:34 640220112012 1132c2Q1k水桶 塑料 7 加130二排/号 201212-11201034320112013 1134a20l2d钦料 食品 54 00 200二排 12号2012-12-1120:10:34.640零件代号 t黄代

19、号出货人工作号名称种类价格出库数里取货单号出库时间120112002 | 1120f!12a龙头 金属 9SQ 10东华理工 2012-12-112&1516.73iiiimniniiiiiirmriiiir-对零件进库登记”数据更改是触发对 零件信息登记”的更改-同时防止对零件进库登记”信息的非法更改create trigger tri_up 零件进库on零件进库登记 after update asif exists(select 零件代号 from deleted where 零件代号=(select 零件代号 from inserted)and 进货代号 =(select进货代号

20、 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库

21、存数量 =库存数量+(select进库数量 from inserted)-(select进库数量 fromdeleted) elsebeginprint修改不正确 end-对触发器“tri_u雷件进库”的相关验证信息update零件进库登记set进库数量=120where零件代号='20112002'and进货代号=1120update零件进库登记set进库数量 =5000where零件代号='20112002' and进货代号=2187百肖思3行受影响1行受葡响修改不正确2行受影响¥exec pro_select二I结果,肖息垂件代号行种类伯格库存数

22、量120112001I螳检金属5 2020220112002金属5.301D0320112003水杯望料36.BD50420112004书包布料52.DD12D520112005氢视电子4000002062D112DD9皿金属S.3D120720112012水桶逑料790100820112013食品M.DD17D零件代号进筠代考进货人工作目名称种类价格进库数里存该位置进库时询120112009j 1122c2011b电池金属 8 雨 120一排口居 2012'121120W;34 640皂2Q112D121132c2011c水桶塑料 7.M W二排 DG 号2012-12-1120:1

23、0:34.6403201120131134a2012d馍料食品200二排 H 售2012-12-11 20 10:34 640零件代号出货代号出货人工作号名称种如一价格出库数里取货单号出库时间20112002"I 1120f112a龙头 金属 9 M 10东华理工2012-121120.15:15-对零件出库登记”数据更改是触发对零件信息登记”的更改-同时防止对零件进库登记”信息的非法更改create trigger tri_up 零件出库on零件出库登记after updateasif exists(select 零件代号 from deleted where 零件代号=(sele

24、ct 零件代号 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 出库数

25、量 >(select 出货代号 from inserted)update零件信息登记set库存数量=库存数量 +(select出库数量 from inserted)-( select出库数量fromdeleted)elsebeginprint修改不正确' end-对触发器“tri_u雷件出库”的相关验证信息update零件出库登记set出库数量 =20where零件代号='20112002' and出货代号 =1120update零件出库登记set出库数量 =120where 零件代号='20112004'update零件出库登记set出货代号 =

26、620where 零件代号='20112004'3消息ie行受影响)1行受影响修改不正确行受蜀响修改不正确2行受影响)exec pro select用结果岛消息零件代号名称种类价格库存数里120112001蛭栓金属5.20川220112002龙头金属9.M110320112003水杯塑料36.80G020112004书包布料52.卸130520112005电视电子4c00.00如630112009电池金属&却1W720112012水桶塑料7.押110820112013饮料食品130零件代号g窗代号,进货人工作号 名称 种类,价格 进库数里 存放位置 进库时间1201120091122c20l1b电池金属 3.30 120一排嘴 2012-12-112O:W:M,64O22D112D12113

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论