CREATE TRIGGER t_ReGoods ON dbo.tb_ReGoods 
FOR INSERT,UPDATE 
AS 
UPDATE tb_Stock  SET tb_Stock.StockNum = tb_Stock.StockNum+INSERTED.ReGoodsNum 
,tb_Stock.NeedPay= tb_Stock.NeedPay+ INSERTED.ReGoodsNum*tb_Stock.GoodsPrice 
,tb_Stock.HasPay=tb_Stock.HasPay+INSERTED.ReGoodsNum*tb_Stock.GoodsPrice 
FROM INSERTED,tb_Stock 
WHERE tb_Stock.GoodsID = INSERTED.GoodsID AND INSERTED.ReGoodsSort = 1UPDATE tb_Sell SET tb_Sell.GoodsNum= tb_sell.GoodsNum-INSERTED.ReGoodsNum 
,HasPay= tb_Sell.HasPay-INSERTED.ReGoodsNum*INSERTED.ReGoodsPrice 
,NeedPay = tb_Sell.NeedPay-INSERTED.ReGoodsNum*INSERTED.ReGoodsPrice 
FROM INSERTED,tb_Sell  
WHERE tb_Sell.GoodsID = INSERTED.GoodsID AND INSERTED.ReGoodsSort = 1

解决方案 »

  1.   

    CREATE TRIGGER t_ReGoods ON dbo.tb_ReGoods 
    FOR INSERT,UPDATE 
    AS UPDATE a 
    SET StockNum =a.StockNum+i.ReGoodsNum
    ,NeedPay=a.NeedPay+i.ReGoodsNum*a.GoodsPrice)
    ,HasPay=a.HasPay+(i.ReGoodsNum*aGoodsPrice)
    FROM tb_Stock a right join INSERTED i
    on a.GoodsID = i.GoodsID
    where i.ReGoodsSort = 1UPDATE a 
    SET GoodsNum=a.GoodsNum-INSERTED.ReGoodsNum
    ,HasPay=a.HasPay-INSERTED.ReGoodsNum*i.ReGoodsPrice
    ,NeedPay =a.NeedPay-i.ReGoodsNum*i.ReGoodsPrice
    FROM tb_Sell a right join INSERTED i
    on a.GoodsID = i.GoodsID
    where i.ReGoodsSort = 1
      

  2.   

    逻辑上的问题,非要这么处理就用MAx吧
      

  3.   

    不能吧. 是你觸發這個trigger 的 insert or update 語句裡面更新的值由問題吧
    按照我寫的這個trigger 應該不會有這樣的問題的.
      

  4.   

    全是原码照扳,不会有问题,仔细看了好几启遍了
    楼上所有的贴子全试过了,我在csdn发了几天的贴子了,好多答案没有一个符合的#14,
    哪位大哥帮帮我啊#52