仓库管理系统数据库的设计与实现 SQL serverWord文件下载.docx
- 文档编号:19088167
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:13
- 大小:302.75KB
仓库管理系统数据库的设计与实现 SQL serverWord文件下载.docx
《仓库管理系统数据库的设计与实现 SQL serverWord文件下载.docx》由会员分享,可在线阅读,更多相关《仓库管理系统数据库的设计与实现 SQL serverWord文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
(name=仓库管理系统数据库_log,
\仓库管理系统数据库_Log.LDF'
size=10,
maxsize=200,
----------------------------------------
--数据表的创建
use仓库管理系统数据库
createtable零件信息登记
(零件代号char(10)primarykey,
名称char(10)notnull,
种类char(10)notnull,
价格numeric(10,2)notnull,
库存数量intdefault0)
createtable零件进库登记
(
零件代号char(10)foreignkeyreferences零件信息登记(零件代号),
进货代号int,
进货人工作号char(10),
进库数量intnotnulldefault0,
存放位置char(10)notnull,
进库时间datetime,
primarykey(零件代号,进货代号))
createtable零件出库登记
出货代号int,
出货人工作号char(10)notnull,
价格numeric(10,2)notnull,
出库数量intnotnulldefault0,
取货单号char(10)notnull,
出库时间datetime,
primarykey(零件代号,出货代号))
----------------------------------------
--通过存储过程来实现表中数据的输入
createprocedurepro_ins1
(@nochar(20),@namechar(20),@classchar(20),@snumeric(10,2),@numint)
as
insertinto零件信息登记
values(@no,@name,@class,@s,@num)
createprocedurepro_ins2
(@nochar(20),@jnoint,@wnochar(10),@namechar(20),@classchar(20),@snumeric(10,2),@numint,@mchar(20))
declare@timedatetime
set@time=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))
insertinto零件出库登记
values(@no,@jno,@wno,@name,@class,@s,@num,@m,@time)
createprocedurepro_select
begin
select*
from零件信息登记
select*
from零件进库登记
from零件出库登记
end
----------------------------------------------------------
--通过第一个存储过程来实现零件的信息登录
execpro_ins1'
20112001'
'
螺栓'
金属'
5.2,50
20112002'
龙头'
9.3,70
20112003'
水杯'
塑料'
36.8,80
20112004'
书包'
布料'
52,150
20112005'
电视'
电子'
4000,50
-
--------------------------------------------------
--当零件进库时通过下面的触发器来实现数据的完整性
createtriggertri_统一零件管理
on零件进库登记
insteadofinsert
if(exists(select零件代号from零件信息登记where零件代号=(select零件代号frominserted)))
begin
print'
在库里已经此零件,并且放置成功'
update零件信息登记
set库存数量=库存数量+(select进库数量frominserted)
where零件代号=(select零件代号frominserted)
end
if(notexists(select零件代号from零件信息登记where零件代号=(select零件代号frominserted)))
库里不存在此零件,已经把此零件加入零件信息登记中'
insertinto零件信息登记
select零件代号,名称,种类,价格,进库数量
frominserted
insertinto零件进库登记
select零件代号,进货代号,进货人工作号,名称,种类,价格,进库数量,存放位置,进库时间
End
--------------------------------------------------------------
--对触发器“tri_统一零件管理”的相关验证信息
execpro_select
execpro_ins2'
1120,'
c2011a'
9.3,70,'
一排号'
20112009'
1122,'
c2011b'
电池'
8.3,150,'
20112012'
1132,'
c2011c'
水桶'
7.9,130,'
二排号'
20112013'
1134,'
a2012d'
饮料'
食品'
54,200,'
--droptriggertri_统一零件出库
---------------------------------------------------------------------
--当零件出库时通过下面的触发器来实现数据的完整性
createtriggertri_统一零件出库
on零件出库登记
ifexists(select零件代号from零件信息登记where零件代号=(select零件代号frominserted))
次零件存在'
ifexists(select零件代号from零件信息登记where零件代号=(select零件代号frominserted)
and库存数量>
=(select出库数量frominserted))
print'
零件库存够出售'
update零件信息登记
set库存数量=库存数量-(select出库数量frominserted)
where零件代号=(select零件代号frominserted)
insertinto零件出库登记
select零件代号,出货代号,出货人工作号,名称,种类,价格,出库数量,取货单号,出库时间
else
零件库存数量不够,不能出售!
'
else
仓库里没有此零件,请通知公司'
execpro_ins3'
f112a'
9.3,10,'
东华理工'
1143,'
f113a'
52,1000,'
南昌'
20112045'
1220,'
f114b'
铅笔'
用具'
江西'
20112046'
1128,'
g112a'
锁'
云南'
-----------------------------------------------------------------
--对“零件进库登记”数据更改是触发对“零件信息登记”的更改
--同时防止对“零件进库登记”信息的非法更改
createtriggertri_up零件进库
afterupdate
ifexists(select零件代号fromdeletedwhere零件代号=(select零件代号frominserted)
and进货代号=(select进货代号frominserted)
and进库数量>
(select进库时间frominserted))
set库存数量=库存数量+(select进库数量frominserted)-(select进库数量fromdeleted)
elseifexists(select零件代号fromdeletedwhere零件代号=(select零件代号frominserted)
and进库数量<
=(select进库时间frominserted))
set库存数量=库存数量+(select进库数量frominserted)-(select进库数量fromdeleted)
else
修改不正确'
--对触发器“tri_up零件进库”的相关验证信息
update零件进库登记
set进库数量=120
where零件代号='
and进货代号=1120
set进库数量=5000
and进货代号=2187
--------------------------------------------------------
--对“零件出库登记”数据更改是触发对“零件信息登记”的更改
createtriggertri_up零件出库
and出货代号=(select出货代号frominserted)
and出库数量<
=(select出库时间frominserted))
set库存数量=库存数量+(select出库数量frominserted)-(select出库数量fromdeleted)
and出库数量>
(select出货代号frominserted))
set库存数量=库存数量+(select出库数量frominserted)-(select出库数量fromdeleted)
--------------------------------------------------------------------
--对触发器“tri_up零件出库”的相关验证信息
update零件出库登记
set出库数量=20
and出货代号=1120
set出库数量=120
set出货代号=620
--一下代码为创建相关规则、试图、用户并授权,来完成数据库的完整性和安全性
---相关的验证信息省略
createruleru_零件数量
@num>
=0
execsp_bindrule'
ru_零件数量'
零件信息登记.库存数量'
零件进库登记.进库数量'
零件出库登记.出库数量'
20112011'
9.3,-10
9.3,-100,'
-execpro_ins3'
createviewview_零件进出库(零件代号,进库数量,出库数量)
select零件进库登记.零件代号,进库数量,出库数量
from零件进库登记,零件出库登记
where零件进库登记.零件代号=零件出库登记.零件代号
createviewview_零件库存情况
select零件代号,库存数量
fromview_零件进出库
fromview_零件库存情况
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 仓库管理系统数据库的设计与实现 SQL server 仓库 管理 系统 数据库 设计 实现