当前位置:首页 > 库存物资管理(参考案例)
创建入库表
use Material_DB
create table Stocking( /*定义入库关系*/ SNo char(10) NOT NULL primary key, WNo char(10) NOT NULL, DNo char(10) NOT NULL,
foreign key (WNo) references Ware(WNo), foreign key (DNo) references Depot(DNo), SAmount Int NOT NULL,
SDate smalldatetime NOT NULL, Supplier varchar(50) NOT NULL )
第 9 页 共 27 页
创建出库表
use Material_DB
create table Outbound( /*定义出库关系*/ ONo char(10)NOT NULL primary key, WNo char(10)NOT NULL ,
foreign key (WNo)references Ware(WNo), DNo char(10) NOT NULL,
foreign key (DNo) references Depot(DNo), OAmount int NOT NULl ,
ODate smalldatetime NOT NULL, Buyers varchar(50) NOT NULL )
第 10 页 共 27 页
完整约束的说明:
商品Ware的WNo商品编号要求在100000~999999之间,WName不能取空; 仓库Depot的DNo仓库编号要求在2010001~2010999之间,DName不能取空; 该仓库的商品型号统一为DA01-DA99格式,规格为CX100-CX199格式。
use Material_DB /*定义表Ware唯一性的约束条件*/
alter Table Ware add unique(WName,WFactory,WType,Spec);
alter Table Ware /*定义WType的完整性约束条件:商品型号统一为DA01-DA99格式*/ add constraint C2 check(WType like '[D][A][0-9][1-9]');
alter Table Ware /*定义Spec的完整性约束条件:规格为CX100-CX199格式*/ add constraint C3 check(Spec like '[C][X][1-9][0-9][0-9]');
use Material_DB
alter table Ware /*添加对表Ware的WNo属性的完整性约束,要求在~9999999999之间*/ add constraint C4 check(WNo
like'[1-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'); alter table Depot
add constraint C5 check(DNo like'[2][0][1][0][0-9][0-9][0-9]');
use Material_DB alter table Ware drop constraint C4;
use Material_DB
alter table Ware /*添加对表Ware的WNo属性的完整性约束,要求在~999999之间*/ add constraint C4 check(WNo like'[1-9][0-9][0-9][0-9][0-9][0-9]');
创建视图
通过WLST(提取“物料视图”每个字的头字母)视图来浏览库存中相同编号商品的信息,其中包括:商品编号WNo、商品名WName、商品厂家WFactory、商品型号WType、商品规格Spec、商品数量SNum、
create view VWname(商品编号,商品名称, 库存数量)--视图 AS
SELECT Stock.WNo,Ware.WName,sum(Stock.WAmount) from Ware,Stock
where Stock.WNo=Ware.WNo group by Stock.WNo,Ware.WName;
第 11 页 共 27 页
五、 实现商品的入库,在商品入库时通过触发器或存储过程同时完成商品
库存台帐的更新。(谢XX负责部分)
入库表的触发器
create trigger stocking_into on stocking --这是入库表的触发器 after insert as begin
declare @a char(10),@b char(10),@d int; select @a=i.DNo,@b=i.WNo,@d=i.SAmount from inserted as i;
if(select Stock.WNo from Stock where Stock.WNo=@b and Stock.DNo=@a) is not null begin
update Stock
set Stock.WAmount=Stock.WAmount+@d where Stock.WNo=@b and Stock.DNo=@a; return;
end
insert into stock values(@b,@a,@d); end
第 12 页 共 27 页
共分享92篇相关文档