表組件:SQL Server觸發器:當另一個表的列值增加時,如何增加表中的列值?
表材料:
我怎麼能寫一個觸發器在material
表以降低material_quantity
值時component_quantity
是否增加?
順便說一下,組件是由材料製成的,所以當一個組件的數量增加時,具有相同數量material_id
的材料數量將會以相同的數量減少。
表組件:SQL Server觸發器:當另一個表的列值增加時,如何增加表中的列值?
表材料:
我怎麼能寫一個觸發器在material
表以降低material_quantity
值時component_quantity
是否增加?
順便說一下,組件是由材料製成的,所以當一個組件的數量增加時,具有相同數量material_id
的材料數量將會以相同的數量減少。
插入/更新觸發器應該可以幫到你。
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
只需發出UPDATE命令。 –