SQL Server触发器:当另一个表的列值增加时,如何在表中增加列的值?

时间:2016-08-14 03:06:47

标签: sql sql-server tsql database-trigger

表组件:

enter image description here

表材料:

enter image description here

material_quantity增加时,如何编写触发器以降低material表中的component_quantity值?

顺便说一下,组件是由材料制成的,所以当一个组件的数量增加时,具有相同material_id的材料的数量将减少相同的数量。

1 个答案:

答案 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