2016-08-14 52 views

回答

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 
+0

當發生UPDATE時,您的代碼不會考慮'deleted'中的任何值,即計算更新所產生的增量。我想知道OP可能需要什麼。 – HABO

+0

@HABO是的,也想到了它。但更好地使用另一個刪除觸發器。並且應該有外鍵,因此刪除可能不會很順利 – gofr1