我有一个包含三列的表格,例如pqty,prqty和balqty。 我想要做的是,必须添加pqty和prqty的值。然后它应该存储在balqty中。插入或更新此表时,每行必须有效。 我使用了这个触发器,它有时会工作,而且大部分时间都不会。我不知道为什么。
CREATE TRIGGER tsl on stockledger
FOR update
AS declare @pqty int, @prqty int;
select @pqty=i.pqty from inserted i;
select @prqty=i.prqty from inserted i;
update Stockledger set balqty = (@pqty - @prqty)
PRINT 'AFTER Update trigger fired.'
答案 0 :(得分:4)
我认为这不是一个好用的触发器。相反,如果您有容量,请考虑使用计算列(使用PERSISTED来提高性能):
ALTER TABLE StockLedger DROP COLUMN balqty;
ALTER TABLE StockLedger ADD COLUMN balqty AS pqty - prqty PERSISTED;