物料表 (物料编号 ,物料名,库存量)
收货单表(收货单号,物料编号,物料名,收货量)
我想请问一下,如果建立一个触发器,(1)当我的物料表中物料名发生变化,收货单表的物料名也随着发生变化。
(2)当我从系统中添加收货单时,库存量随着发生变化,比如物料表中有这样一条记录
M001 纽扣 100
当我输入新的收货单,R003 M001 纽扣 50,输进去之后物料表中的记录就变成,
M001 纽扣 150。
请高手指教,小弟先谢了!
收货单表(收货单号,物料编号,物料名,收货量)
我想请问一下,如果建立一个触发器,(1)当我的物料表中物料名发生变化,收货单表的物料名也随着发生变化。
(2)当我从系统中添加收货单时,库存量随着发生变化,比如物料表中有这样一条记录
M001 纽扣 100
当我输入新的收货单,R003 M001 纽扣 50,输进去之后物料表中的记录就变成,
M001 纽扣 150。
请高手指教,小弟先谢了!
CREATE trigger test on 物料表
for update
as
declare @oldname char(20)
declare @newname char(20)
select @oldname=name from deleted
select @newname=name from inserted
if(@newname<>@oldname)
begin
update 收货单表 set 物料名=@newname where 物料名=@oldname
end
2:
CREATE trigger test2 on 收货单表
for insert
as
declare @sum char(20)
declare @namechar(20)
select @name=name from inserted
begin
update 物料表 set 库存量=库存量+@sum where 物料名=@name
end
CREATE trigger test on 物料表
for update
as
declare @oldname char(20)
declare @newname char(20)
select @oldname=物料名from deleted
select @newname=物料名 from inserted
if(@newname <>@oldname)
begin
update 收货单表 set 物料名=@newname where 物料名=@oldname
end
2:
CREATE trigger test2 on 收货单表
for insert
as
declare @sum char(20)
declare @namechar(20)
select @name=物料名 from inserted
select @sum=收货数量 from inserted
begin
update 物料表 set 库存量=库存量+@sum where 物料名=@name
end