仓库管理系统数据库的设计与实现SQLserver_第1页
仓库管理系统数据库的设计与实现SQLserver_第2页
仓库管理系统数据库的设计与实现SQLserver_第3页
仓库管理系统数据库的设计与实现SQLserver_第4页
仓库管理系统数据库的设计与实现SQLserver_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

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

2、_Data.MDF',size= 50,maxsize= 500,filegrowth= 5)logon(name=仓库管理系统数据库_log,filename='E:仓库管理系统数据库_Log.LDF',size= 10,maxsize= 200,filegrowth= 5)-数据表的创建use仓库管理系统数据库createtable零件信息登记(零件代号char(10)primarykey,名称char(10)notnull,种类char(10)notnull,价格numeric(10,2)notnull,库存数量intdefault 0)createtable零件

3、进库登记(零件代号char(10)foreignkeyreferences零件信息登记(零件代号),进货代号int,进货人工作号char(10),名称char(10)notnull,种类char(10)notnull,价格numeric(10,2)notnull,进库数量intnotnulldefault 0,存放位置char(10)notnull,进库时间datetime,primarykey (零件代号,进货代号)createtable零件出库登记(零件代号char(10)foreignkeyreferences零件信息登记(零件代号),出货代号int,出货人工作号char(10)notn

4、ull,名称char(10)notnull,种类char(10)notnull,价格numeric(10,2)notnull,出库数量intnotnulldefault 0,取货单号char(10)notnull,出库时间datetime,primarykey(零件代号,出货代号)-通过存储过程来实现表中数据的输入createprocedurepro_ins1(nochar(20),namechar(20),classchar(20),snumeric(10,2),numint)asinsertinto零件信息登记values(no,name,class,s,num)createprocedu

5、repro_ins2(nochar(20),jnoint,wnochar(10),namechar(20),classchar(20),snumeric(10,2),numint,mchar(20)asdeclaretimedatetimesettime=getdate()insertinto零件进库登记values(no,jno,wno,name,class,s,num,m,time)createprocedurepro_ins3(nochar(20),jnoint,wnochar(10),namechar(20),classchar(20),snumeric(10,2),numint,mc

6、har(20)asdeclaretimedatetimesettime=getdate()insertinto零件出库登记values(no,jno,wno,name,class,s,num,m,time)createprocedurepro_selectasbeginselect*from零件信息登记select*from零件进库登记select*from零件出库登记end-通过第一个存储过程来实现零件的信息登录execpro_ins1'','螺栓','金属',5.2,50execpro_ins1'','龙头',

7、'金属',9.3,70execpro_ins1'','水杯','塑料',36.8,80execpro_ins1'','书包','布料',52,150execpro_ins1'','电视','电子',4000,50-当零件进库时通过下面的触发器来实现数据的完整性createtriggertri_统一零件管理on零件进库登记insteadofinsertasbeginif(exists(select零件代号from零件信息登记where零件

8、代号=(select零件代号frominserted)beginprint'在库里已经此零件,并且放置成功'update零件信息登记set库存数量=库存数量+(select进库数量frominserted)where零件代号=(select零件代号frominserted)endif(notexists(select零件代号from零件信息登记where零件代号=(select零件代号frominserted)beginprint'库里不存在此零件,已经把此零件加入零件信息登记中'insertinto零件信息登记select零件代号,名称,种类,价格,进库数量f

9、rominsertedinsertinto零件进库登记select零件代号,进货代号,进货人工作号,名称,种类,价格,进库数量,存放位置,进库时间frominsertedendEnd-对触发器“tri_统一零件管理”的相关验证信息execpro_selectexecpro_ins2'',1120,'c2011a','龙头','金属',9.3,70,'一排号'execpro_ins2'',1122,'c2011b','电池','金属',8.3,150,&

10、#39;一排号'execpro_ins2'',1132,'c2011c','水桶','塑料',7.9,130,'二排号'execpro_ins2'',1134,'a2012d','饮料','食品',54,200,'二排号'execpro_select-drop trigger tri_统一零件出库-当零件出库时通过下面的触发器来实现数据的完整性createtriggertri_统一零件出库on零件出库登记insteadofins

11、ertasifexists(select零件代号from零件信息登记where零件代号=(select零件代号frominserted)beginprint'次零件存在'ifexists(select零件代号from零件信息登记where零件代号=(select零件代号frominserted)and库存数量>=(select出库数量frominserted)beginbeginprint'零件库存够出售'update零件信息登记set库存数量=库存数量-(select出库数量frominserted)where零件代号=(select零件代号fromin

12、serted)endinsertinto零件出库登记select零件代号,出货代号,出货人工作号,名称,种类,价格,出库数量,取货单号,出库时间frominsertedendelsebeginprint'零件库存数量不够,不能出售!'endendelsebeginprint'仓库里没有此零件,请通知公司'end-对触发器“tri_统一零件管理”的相关验证信息execpro_ins3'',1120,'f112a','龙头','金属',9.3,10,'东华理工'execpro_ins3&

13、#39;',1143,'f113a','书包','布料',52,1000,'南昌'execpro_ins3'',1220,'f114b','铅笔','用具',9.3,10,'江西'execpro_ins3'',1128,'g112a','锁','金属',9.3,10,'云南'execpro_select-对“零件进库登记”数据更改是触发对“零件信息登记”的更改-同时

14、防止对“零件进库登记”信息的非法更改createtriggertri_up零件进库on零件进库登记afterupdateasifexists(select零件代号fromdeletedwhere零件代号=(select零件代号frominserted)and进货代号=(select进货代号frominserted)and进库数量>(select进库时间frominserted)update零件信息登记set库存数量=库存数量+(select进库数量frominserted)-(select进库数量fromdeleted)elseifexists(select零件代号fromdeleted

15、where零件代号=(select零件代号frominserted)and进货代号=(select进货代号frominserted)and进库数量<=(select进库时间frominserted)update零件信息登记set库存数量=库存数量+(select进库数量frominserted)-(select进库数量fromdeleted)elsebeginprint'修改不正确'end-对触发器“tri_up零件进库”的相关验证信息update零件进库登记set进库数量= 120where零件代号=''and进货代号=1120update零件进库登记s

16、et进库数量= 5000where零件代号=''and进货代号=2187execpro_select-对“零件出库登记”数据更改是触发对“零件信息登记”的更改-同时防止对“零件进库登记”信息的非法更改createtriggertri_up零件出库on零件出库登记afterupdateasifexists(select零件代号fromdeletedwhere零件代号=(select零件代号frominserted)and出货代号=(select出货代号frominserted)and出库数量<=(select出库时间frominserted)update零件信息登记set库

17、存数量=库存数量+(select出库数量frominserted)-(select出库数量fromdeleted)elseifexists(select零件代号fromdeletedwhere零件代号=(select零件代号frominserted)and出货代号=(select出货代号frominserted)and出库数量>(select出货代号frominserted)update零件信息登记set库存数量=库存数量+(select出库数量frominserted)-(select出库数量fromdeleted)elsebeginprint'修改不正确'end-对触

18、发器“tri_up零件出库”的相关验证信息update零件出库登记set出库数量= 20where零件代号=''and出货代号= 1120update零件出库登记set出库数量= 120where零件代号=''update零件出库登记set出货代号=620where零件代号=''execpro_select-一下代码为创建相关规则、试图、用户并授权,来完成数据库的完整性和安全性-相关的验证信息省略createruleru_零件数量asnum>=0execsp_bindrule'ru_零件数量','零件信息登记.库存数量'execsp_bindrule'ru_零件数量','零件进库登记.进库数量'execsp_bindrule'ru_零件数量','零件出库登记.出库数量'execpro_ins1'','龙头','金属',9.3,-10 execpro_ins2'','龙头','金属',9.3,-100,

温馨提示

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

评论

0/150

提交评论