觸發器是資料庫端業務邏輯復用的利器。本文以化學資料統計自動計算變異數為例,深入剖析 INSERTED、DELETED 虛擬表在 INSERT/UPDATE/DELETE 觸發器中的資料流向,並示範跨表庫存扣減的經典觸發器寫法。
INSERTED 表。DELETED,新資料在 INSERTED。DELETED。觸發器透過比對兩表內容,判斷影響行數、欄位變更,決定執行動作。
CREATE TRIGGER OrdDet_Insert ON [Order Details]
FOR INSERT AS
UPDATE P SET UnitsInStock = P.UnitsInStock - I.Quantity
FROM Products P INNER JOIN INSERTED I ON P.ProductID = I.ProductID;
COLUMNS_UPDATED() 快速判斷特定欄位是否被修改。sp_configure 'nested triggers', 0 關閉。善用觸發器實現資料完整性與業務自動化,但需謹慎控制複雜度與效能影響。