大神们,求问,我目前数据库有三张表,入库,库存,出库.有个字段是数量,如何让三张表关联自动更新
就是说每次入库,如果查询东西一样,则库存数量增加,每次出库,如果查询库存东西一样,则库存数量减少,怎么实现这个功能呢?大神们?在线等...
就是说每次入库,如果查询东西一样,则库存数量增加, 每次出库,如果查询库存东西一样,则库存数量减少,怎么实现这个功能呢?大神们?在线等
展开
2个回答
2015-01-06
展开全部
mssql 触发器自动更新
CREATE TRIGGER 入库表修改 ON 入库表
FOR UPDATE
AS
SET NOCOUNT ON
if update(入库数量)
begin
update 库存表 set 库存数量=isnull(a.入库数量,0)-isnull(b.入库数量,0)-isnull(c.出库数量,0)
from 入库表 a,deleted b,出库表 c where a.型号=b.型号 and a.型号=c.型号
update 库存表 set 库存数量=isnull(a.入库数量,0)+isnull(b.入库数量,0)-isnull(c.出库数量,0)
from 入库表 a,inserted b,出库表 c where a.型号=b.型号 and a.型号=c.型号
end
SET NOCOUNT OFF
go
CREATE TRIGGER 出库表修改 ON 出库表
FOR UPDATE
AS
SET NOCOUNT ON
if update(出库数量)
begin
update 库存表 set 库存数量=isnull(a.入库数量,0)-isnull(c.出库数量,0)+isnull(b.出库数量,0)
from 入库表 a,deleted b,出库表 c where a.型号=b.型号 and a.型号=c.型号
update 库存表 set 库存数量=isnull(a.入库数量,0)-isnull(c.出库数量,0)-isnull(b.出库数量,0)
from 入库表 a,inserted b,出库表 c where a.型号=b.型号 and a.型号=c.型号
end
SET NOCOUNT OFF
CREATE TRIGGER 入库表修改 ON 入库表
FOR UPDATE
AS
SET NOCOUNT ON
if update(入库数量)
begin
update 库存表 set 库存数量=isnull(a.入库数量,0)-isnull(b.入库数量,0)-isnull(c.出库数量,0)
from 入库表 a,deleted b,出库表 c where a.型号=b.型号 and a.型号=c.型号
update 库存表 set 库存数量=isnull(a.入库数量,0)+isnull(b.入库数量,0)-isnull(c.出库数量,0)
from 入库表 a,inserted b,出库表 c where a.型号=b.型号 and a.型号=c.型号
end
SET NOCOUNT OFF
go
CREATE TRIGGER 出库表修改 ON 出库表
FOR UPDATE
AS
SET NOCOUNT ON
if update(出库数量)
begin
update 库存表 set 库存数量=isnull(a.入库数量,0)-isnull(c.出库数量,0)+isnull(b.出库数量,0)
from 入库表 a,deleted b,出库表 c where a.型号=b.型号 and a.型号=c.型号
update 库存表 set 库存数量=isnull(a.入库数量,0)-isnull(c.出库数量,0)-isnull(b.出库数量,0)
from 入库表 a,inserted b,出库表 c where a.型号=b.型号 and a.型号=c.型号
end
SET NOCOUNT OFF
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询