表组件:
表材料:
当material_quantity
增加时,如何编写触发器以降低material
表中的component_quantity
值?
顺便说一下,组件是由材料制成的,所以当一个组件的数量增加时,具有相同material_id
的材料的数量将减少相同的数量。
答案 0 :(得分:2)
插入/更新触发后应该可以帮到你。
CREATE TRIGGER some_name
ON dbo.components
AFTER INSERT, UPDATE
AS
BEGIN
UPDATE m
SET material_quantity = m.material_quantity - (i.component_quantity - c.component_quantity)
FROM materials m
INNER JOIN components c ON c.material_id = m.material_id
INNER JOIN inserted i ON c.component_id = i.component_id
END