关于UPDATE触发器的问题

问题:

我想设计一个触发器,使他能在一条记录被更新时,在另一个表中加上其变化量(如有一个订单表,其中有一个数量字段,在另一个库存字段中有一个订单总数量,我想在订单表的数量字段改变时,使库存字段中的订单总数字段也改变,订单总数=订单总数+(订单原数量-订单现在的数量))。谢谢
---------------------------------------------------------------

回答:

/* ID為你的表里的Key字段.OAmt為訂單表里的訂單數量,OrderAmt為庫存里的訂單數量*/

Create Trigger trgTest ON TableName
FOR INSERT,UPDATE,DELETE
AS

IF NOT EXISTS(SELECT * From StockTable,inserted WHERE StockTable.ID=inserted.ID)
INSERT INTO StockTable SELECT ID,0 from inserted

UPDATE StockTable
SET OrderAmt=OrderAmt+(ISNULL(inserted.OAmt,0)-ISNULL(deleted.OAmt,0))
From StockTable INNER JOIN ( inserted FULL OUTER JOIN deleted ON inserted.ID=deleted.ID)
ON StockTable.ID=ISNULL(inserted.ID,deleted.ID)

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus