仓库管理系统数据库的设计与实现 SQL server.doc
《仓库管理系统数据库的设计与实现 SQL server.doc》由会员分享,可在线阅读,更多相关《仓库管理系统数据库的设计与实现 SQL server.doc(11页珍藏版)》请在咨信网上搜索。
● 实验题目:仓库管理系统数据库的设计与实现 描述:设计一个仓库管理系统,实现下列功能: ①零件信息登记(包括种类,名称和库存数量等信息); ②零件进库登记(包括种类,名称和库存数量等信息); ③零件出库登记(包括种类,名称和库存数量等信息); 实验代码和实验结果和实验总结: 在实验代码中分别应用了相关实验操作的结果,通过上一个结果截图与其随后的结果截图和相关代码对比课已看出相关代码的作用(主要是各个触发器的作用)。 -------------------------------------- --数据库的创建 create database 仓库管理系统数据库 on primary ( name = 仓库管理系统数据库_data, filename ='E:\仓库管理系统数据库_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 default 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) foreign 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(20), @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 零件进库登记 values(@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 datetime set @time = getdate() insert into 零件出库登记 values(@no,@jno ,@wno , @name, @class, @s, @num, @m, @time) create procedure 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 - -------------------------------------------------- --当零件进库时通过下面的触发器来实现数据的完整性 create trigger tri_统一零件管理 on 零件进库登记 instead of insert as begin if(exists (select 零件代号 from 零件信息登记 where 零件代号 = (select 零件代号 from inserted))) begin print '在库里已经此零件,并且放置成功' update 零件信息登记 set 库存数量 = 库存数量 + (select 进库数量 from inserted ) where 零件代号 = (select 零件代号 from inserted) end if(not exists (select 零件代号 from 零件信息登记 where 零件代号 = (select 零件代号 from inserted))) begin print '库里不存在此零件,已经把此零件加入零件信息登记中' insert into 零件信息登记 select 零件代号,名称,种类,价格,进库数量 from inserted insert into 零件进库登记 select 零件代号,进货代号,进货人工作号,名称,种类,价格,进库数量,存放位置,进库时间 from inserted end End -------------------------------------------------------------- --对触发器“tri_统一零件管理”的相关验证信息 exec pro_select exec 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 零件出库登记 instead of insert as if exists(select 零件代号 from 零件信息登记 where 零件代号 = (select 零件代号 from inserted)) begin print '次零件存在' if exists(select 零件代号 from 零件信息登记 where 零件代号 = (select 零件代号 from inserted) and 库存数量>=(select 出库数量 from inserted)) begin begin print '零件库存够出售' update 零件信息登记 set 库存数量 = 库存数量 -(select 出库数量 from inserted) where 零件代号 = (select 零件代号 from inserted) end insert into 零件出库登记 select 零件代号,出货代号,出货人工作号,名称,种类,价格,出库数量,取货单号,出库时间 from inserted end else begin print '零件库存数量不够,不能出售!' end end else begin print '仓库里没有此零件,请通知公司' end --对触发器“tri_统一零件管理”的相关验证信息 exec pro_ins3 '20112002',1120,'f112a','龙头','金属',9.3,10,'东华理工' exec pro_ins3 '20112004',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 零件代号=(select 零件代号 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 --------------------------------------------------------------------- --对触发器“tri_up零件进库”的相关验证信息 update 零件进库登记 set 进库数量= 120 where 零件代号='20112002'and 进货代号=1120 update 零件进库登记 set 进库数量 = 5000 where 零件代号='20112002' and 进货代号=2187 exec pro_select -------------------------------------------------------- --对“零件出库登记”数据更改是触发对“零件信息登记”的更改 --同时防止对“零件进库登记”信息的非法更改 create trigger tri_up零件出库 on 零件出库登记 after update as 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 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 -------------------------------------------------------------------- --对触发器“tri_up零件出库”的相关验证信息 update 零件出库登记 set 出库数量 = 20 where 零件代号='20112002' and 出货代号 = 1120 update 零件出库登记 set 出库数量 = 120 where 零件代号='20112004' update 零件出库登记 set 出货代号 = 620 where 零件代号='20112004' exec pro_select -------------------------------------------------------------------- --一下代码为创建相关规则、试图、用户并授权,来完成数据库的完整性和安全性 ---相关的验证信息省略 create rule ru_零件数量 as @num>=0 exec sp_bindrule 'ru_零件数量','零件信息登记.库存数量' exec sp_bindrule 'ru_零件数量','零件进库登记.进库数量' exec sp_bindrule 'ru_零件数量','零件出库登记.出库数量' exec pro_ins1 '20112011','龙头','金属',9.3,-10 exec pro_ins2 '20112012','龙头','金属',9.3,-100,'东华理工' -exec pro_ins3 '20112013','龙头','金属',9.3,-100,'东华理工' create view view_零件进出库(零件代号,进库数量,出库数量) as select 零件进库登记.零件代号,进库数量,出库数量 from 零件进库登记 , 零件出库登记 where 零件进库登记.零件代号=零件出库登记.零件代号 create view view_零件库存情况 as select 零件代号,库存数量 from 零件信息登记 select * from view_零件进出库 select * from view_零件库存情况- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 仓库管理系统数据库的设计与实现 SQL server 仓库 管理 系统 数据库 设计 实现
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【xrp****65】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【xrp****65】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【xrp****65】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【xrp****65】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文