已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验题目:仓库管理系统数据库的设计与实现 描述:设计一个仓库管理系统,实现下列功能:零件信息登记(包括种类,名称和库存数量等信息);零件进库登记(包括种类,名称和库存数量等信息);零件出库登记(包括种类,名称和库存数量等信息);实验代码和实验结果和实验总结: 在实验代码中分别应用了相关实验操作的结果,通过上一个结果截图与其随后的结果截图和相关代码对比课已看出相关代码的作用(主要是各个触发器的作用)。-数据库的创建createdatabase仓库管理系统数据库onprimary(name=仓库管理系统数据库_data,filename=E:仓库管理系统数据库_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零件进库登记(零件代号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)notnull,名称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)createprocedurepro_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,mchar(20)asdeclaretimedatetimesettime=getdate()insertinto零件出库登记values(no,jno,wno,name,class,s,num,m,time)createprocedurepro_selectasbeginselect*from零件信息登记select*from零件进库登记select*from零件出库登记end-通过第一个存储过程来实现零件的信息登录execpro_ins120112001,螺栓,金属,5.2,50execpro_ins120112002,龙头,金属,9.3,70execpro_ins120112003,水杯,塑料,36.8,80execpro_ins120112004,书包,布料,52,150execpro_ins120112005,电视,电子,4000,50-当零件进库时通过下面的触发器来实现数据的完整性createtriggertri_统一零件管理on零件进库登记insteadofinsertasbeginif(exists(select零件代号from零件信息登记where零件代号=(select零件代号frominserted)beginprint在库里已经此零件,并且放置成功update零件信息登记set库存数量=库存数量+(select进库数量frominserted)where零件代号=(select零件代号frominserted)endif(notexists(select零件代号from零件信息登记where零件代号=(select零件代号frominserted)beginprint库里不存在此零件,已经把此零件加入零件信息登记中insertinto零件信息登记select零件代号,名称,种类,价格,进库数量frominsertedinsertinto零件进库登记select零件代号,进货代号,进货人工作号,名称,种类,价格,进库数量,存放位置,进库时间frominsertedendEnd-对触发器“tri_统一零件管理”的相关验证信息execpro_selectexecpro_ins220112002,1120,c2011a,龙头,金属,9.3,70,一排号execpro_ins220112009,1122,c2011b,电池,金属,8.3,150,一排号execpro_ins220112012,1132,c2011c,水桶,塑料,7.9,130,二排号execpro_ins220112013,1134,a2012d,饮料,食品,54,200,二排号execpro_select-drop trigger tri_统一零件出库-当零件出库时通过下面的触发器来实现数据的完整性createtriggertri_统一零件出库on零件出库登记insteadofinsertasifexists(select零件代号from零件信息登记where零件代号=(select零件代号frominserted)beginprint次零件存在ifexists(select零件代号from零件信息登记where零件代号=(select零件代号frominserted)and库存数量=(select出库数量frominserted)beginbeginprint零件库存够出售update零件信息登记set库存数量=库存数量-(select出库数量frominserted)where零件代号=(select零件代号frominserted)endinsertinto零件出库登记select零件代号,出货代号,出货人工作号,名称,种类,价格,出库数量,取货单号,出库时间frominsertedendelsebeginprint零件库存数量不够,不能出售!endendelsebeginprint仓库里没有此零件,请通知公司end-对触发器“tri_统一零件管理”的相关验证信息execpro_ins320112002,1120,f112a,龙头,金属,9.3,10,东华理工execpro_ins320112004,1143,f113a,书包,布料,52,1000,南昌execpro_ins320112045,1220,f114b,铅笔,用具,9.3,10,江西execpro_ins320112046,1128,g112a,锁,金属,9.3,10,云南execpro_select-对“零件进库登记”数据更改是触发对“零件信息登记”的更改-同时防止对“零件进库登记”信息的非法更改createtriggertri_up零件进库on零件进库登记afterupdateasifexists(select零件代号fromdeletedwhere零件代号=(select零件代号frominserted)and进货代号=(select进货代号frominserted)and进库数量(select进库时间frominserted)update零件信息登记set库存数量=库存数量+(select进库数量frominserted)-(select进库数量fromdeleted)elseifexists(select零件代号fromdeletedwhere零件代号=(select零件代号frominserted)and进货代号=(select进货代号frominserted)and进库数量=(select进库时间frominserted)update零件信息登记set库存数量=库存数量+(select进库数量frominserted)-(select进库数量fromdeleted)elsebeginprint修改不正确end-对触发器“tri_up零件进库”的相关验证信息update零件进库登记set进库数量= 120where零件代号=20112002and进货代号=1120update零件进库登记set进库数量= 5000where零件代号=20112002and进货代号=2187execpro_select-对“零件出库登记”数据更改是触发对“零件信息登记”的更改-同时防止对“零件进库登记”信息的非法更改createtriggertri_up零件出库on零件出库登记afterupdateasifexists(select零件代号fromdeletedwhere零件代号=(select零件代号frominserted)and出货代号=(select出货代号frominserted)and出库数量(select出货代号frominserted)update零件信息登记set库存数量=库存数量+(select出库数量frominserted)-(select出库数量fromdeleted)elsebeginprint修改不正确end-对触发器“tri_up零件出库”的相关验证信息update零件出库登记set出库数量= 20where零件代号=20112002and出货代号= 1120update零件出库登记set出库数量= 120where零件代号=20112004update零件出库登记set出货代号=620where零件代号=20112004execpro_select-一下代码为创建相关规则、试图、用户并授权,来完成数据库的完整性和安全性-相关的验证信息省略createruleru_零件数量asnum=0execsp_bindruleru_零件数量,零件信息登记.库存数量execsp_bindruleru_零件数量,零件进库登记.进库数量execsp_bindruleru_零件数量,零件出库登记.出库数量execpro_ins120112011,龙头,金属,9.3,-10 execpro_ins220112012,龙头,金属,9.3,-10
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 打球认输协议书范本
- 脊柱按摩师保密意识能力考核试卷含答案
- 炼钢工岗前实操综合知识考核试卷含答案
- 煤矿智能开采员风险识别测试考核试卷含答案
- 2026年物业上半年工作总结及下半年工作计划
- 岗位职责的编制和说明
- 2026年市场营销人员品牌推广策略培训方案
- 英语语言学方向就业指南
- 2026年酒店前厅VIP客户接待专项培训计划
- 校园节能监理规划
- 学位英语4000词(开放大学)
- GB/T 9799-2024金属及其他无机覆盖层钢铁上经过处理的锌电镀层
- 中医是怎样治疗动脉硬化的
- 产品漏装改善报告
- 悬挑式卸料平台监理实施细则
- 铸件(原材料)材质报告
- 提货申请单表
- 脑与认知科学概论PPT(第2版)完整全套教学课件
- 【初中化学】中国化学家-李寿恒
- 生管指导手册(什么是PMC)
- 历届全国初中数学联赛真题和答案
评论
0/150
提交评论