我想在仓库数据库中,实现一个触发器,
(1)新购一个新物料种类后,自动会将这个物料品名、数量等信息在新增到仓库结存表,并且数量用新购的数量来替代。
(2)每一次出入库,都用出(或入)库数量自动在结存表中的相应物料中进行加减。
比如:采购员新采购了一个代码为0545 品种物料 :15件,就在仓库的结存表中新增一条0545的记录信息,并且数量就用新购的数量15件
每次出库时,就将出库数量自动在相应的结存表中进行相减。
每欠入库时,就将入库数量自动在相应的结存表中进行相加。 这个触发器,要怎么写???
(1)新购一个新物料种类后,自动会将这个物料品名、数量等信息在新增到仓库结存表,并且数量用新购的数量来替代。
(2)每一次出入库,都用出(或入)库数量自动在结存表中的相应物料中进行加减。
比如:采购员新采购了一个代码为0545 品种物料 :15件,就在仓库的结存表中新增一条0545的记录信息,并且数量就用新购的数量15件
每次出库时,就将出库数量自动在相应的结存表中进行相减。
每欠入库时,就将入库数量自动在相应的结存表中进行相加。 这个触发器,要怎么写???
解决方案 »
- sql server 2000,一个数据库最多能建多少张表,每张表最多能建多少个字段?
- 软件按什么标准收取维护费?多谢!
- sql server2000的存储过程存放在sysobjects表中,当不知道存储过程的参数存放在哪个表中
- 存储过程的逻辑运算问题
- 关于delete from dd where A1 not in (994353,994298,991234,991032,...);
- 格式转化
- 又是一个奇怪的问题,关于本地包和作业,感兴趣的进来。
- 请高手回答我这个问题——如何提升数据库访问的效率
- 急救:创建及打开Sql Server 2000数据库 表的问题
- 一个简单的问题?
- T-SQL语句定义数据类型的时候那些数据类型不需要定义宽度。
- 英文书籍
领料表数据结构:物料代码 、名称、领料部门、领料人、领用数量、PO号、领料单号
进仓数据结构:物料代码 、名称、PO号、进仓单号、供应商、进仓数量是不是提供这个测试数据
on 进仓数据
for insert , update
as
begin
update 结仓表 set 库存数量=库存数量 + 进仓数量 from inserted where 结仓表.物料代码=inserted.物料代码
if @@rowcount=0
insert 结仓表 select 物料代码,名称,进仓数量, 0 from inserted
end create trigger trd_进仓
on 进仓数据
for delete
as
begin
update 结仓表 set 库存数量=库存数量 - 进仓数量 from deleted where 结仓表.物料代码=deleted.物料代码
if @@rowcount=0
insert 结仓表 select 物料代码,名称,-进仓数量, 0 from inserted
end create trigger tri_领料
on 领料表
for insert , update
as
begin
update 结仓表 set 库存数量=库存数量 - 领用数量 from inserted where 结仓表.物料代码=inserted.物料代码
if @@rowcount=0
insert 结仓表 select 物料代码,名称,-领用数量, 0 from inserted
end create trigger trd_领料
on 领料表
for delete
as
begin
update 结仓表 set 库存数量=库存数量 + 领用数量 from deleted where 结仓表.物料代码=deleted.物料代码
if @@rowcount=0
insert 结仓表 select 物料代码,名称,领用数量, 0 from inserted
end
但就是不能“进仓”和“领料”表中修改任何列的数据。报不能修改表的数据提示已更新或删除的行要么不能使该行成为唯一行,要么改变了多个行(860行),
这是为什么/??代码如下:create trigger trd_进仓
on 进仓
for delete
as
begin
update 结存 set 现有库存=现有库存- 进仓.入仓数 from 进仓 where 结存.代码=进仓.物料代码
if @@rowcount=0
insert 结存(代码,名称规格色别,现有库存) select 物料代码,名称规格色别,入仓数 from 进仓
endset ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
gocreate trigger tri_进仓
on 进仓
for insert , update
as
begin
update 结存set 现有库存=现有库存+ 进仓.入仓数from 进仓where 结存.代码=进仓.物料代码
if @@rowcount=0
insert 结存(代码,名称规格色别,现有库存) select 物料代码,名称规格色别,入仓数from 进仓
end