删除事务时使用触发器更新另一个表中的数据

问题描述 投票:0回答:1

我有2张桌子:

  • tblStock
    (零件编号、库存数量、库存位置)
  • tblTransfer
    (零件编号、库存数量、从位置、到位置)

当我删除

tblTransfer
中的数据时,股票会反转回
tblStock

插入触发器工作正常,但删除触发器不起作用。

请查看我的删除触发器:

CREATE TRIGGER [dbo].[UpdateStock] 
ON [dbo].[tblTransfer]
FOR DELETE, UPDATE
AS
BEGIN
    SET NOCOUNT ON;

    MERGE tblStock s
    USING (SELECT d.PartNo, d.StockLocation
           FROM Deleted d) MergeData ON s.PartNo = MergeData.PartNo
                                     AND s.StockLocation = MergeData.FromLocation
      WHEN MATCHED THEN
        UPDATE SET
            s.StockQty = s.StockQty - MergeData.StockQty
            s.StockLocation = MergeData.ToLocation
END;
sql-server triggers
1个回答
1
投票
    create trigger trg_test
    on    dbo.tbltransfer
    after delete 
    as
    begin

    update tbl
    set  tbl.stockqnty=d.quantity, tbl.stocklocation=d.location
    from
    tblstock tbl
    join
    deleted d
    on d.partno=tbl.partno

    end
© www.soinside.com 2019 - 2024. All rights reserved.