我面临以下情况:
我创建了一个触发器,该触发器在插入到第三张表时做出反应。当我插入任何数据(例如1 1 2
)时,应从单元格的“库存量”列中减去最后一个数字,该数字必须为ID Product
(如图所示)。但是我怎么才能知道最后添加的是哪一行呢?我以为首先要通过选择来完成,但是似乎不可能。现在我认为可以在游标的帮助下完成此操作,但它似乎并不是最好的选择。请问有更好的变种吗?
这是我的触发器代码,但不幸的是,每次仅从第一乘积中减去1。
CREATE TRIGGER AmountInsert ON Amount
AFTER INSERT
AS
BEGIN
UPDATE Product
SET Amount_On_Stock =
(SELECT Amount_On_Stock FROM Product
WHERE ID_Product = 1) - 1
WHERE ID_Product = 1
END
您需要了解的第一件事是,在SQL Server的触发器中,提供了inserted
pseudo-table and a deleted
pseudo-table。您可以使用这些表来确定发生了哪些更改。