create trigger t1 on feedin for delete
as
update material set 库存 = 库存 - feedinme.入库数量 from feedinme, deleted
where feedinme.据编号 = deleted.据编号
and material.物料编号 = feedinme.物料编号
delete feedinme from deleted where 单据编号 = deleted.单据编号
go愉快的登山者       ⊙
◢◣◢◣◢◣

解决方案 »

  1.   

    create trigger trigname on feedinme for delete
    as
    delete feedin where receipt =select receipt from deleted
    update material set quantity=quantity-(select quantity from deleted)
               where idno=(select goodsid from deleted)
      

  2.   

    二位老大,
    from deleted 这 deleted 是哪来的呀
      

  3.   

    deleted 和 inserted 是逻辑(概念)表。这些表在结构上类似于定义触发器的表(也就是在其中尝试用户操作的表);这些表用于保存用户操作可能更改的行的旧值或新值。例如,若要检索 deleted 表中的所有值,请使用: 
    SELECT *
    FROM deleted
      

  4.   

    我依葫芦画瓢还是报错呀!
    CREATE TRIGGER howdele ON [dbo].[feedin] 
    FOR DELETE 
    AS
    update material set quantity = quantity - feedinme.quantity from feedinme, deleted
     where feedinme.receipt = deleted.receipt
    and material.idno = feedinme.receipt
    delete feedinme from deleted where receipt = deleted.receipt
    go
    lifeforu(苍白到底)也报错!
      

  5.   

    CREATE TRIGGER howdele ON [dbo].[feedin] 
    FOR DELETE 
    AS
    update material set quantity = quantity - feedinme.quantity from feedinme, deleted
    where feedinme.receipt = deleted.receipt
    and material.idno = feedinme.receipt
    delete feedinme from deleted where receipt = deleted.receipt
    报错列名quantity 不正确,
        列名receipt 不正确,
    到底应该怎么写呀!
      

  6.   

    CREATE TRIGGER 名 on feedin
    INSTEAD OF delete
    AS
    BEGIN
      update material set quantity=material.quantity-tem.quantity from (select goodsid,sum(quantity) quantity from feedinme where receipt in (select receipt from deleted) group by goodsid) tem where material.idno=tem.goodsid
      delete feedinme where receipt in (select receipt from feedinme)
      delete feedin where receipt in (select receipt from feedinme)
    END
      

  7.   

    大力的CREATE TRIGGER 名 on feedin
    INSTEAD OF delete
    .....
    我执行删除一条feedin后,把所有的feedinme都删除了
      

  8.   

    delete feedinme from deleted where receipt = deleted.receipt
    這句錯了大力幫你解決了我也來晚了
      

  9.   

    还没解决啊!:(
    如果把
    delete feedinme from deleted where receipt = deleted.receipt
    换上去,检查语法都通不过,报错!
    5555.............
      

  10.   

    delete feedinme from deleted where feedinme.receipt = deleted.receipt
      

  11.   

    不对;
    应该是把上句写成
    delete feedinme from deleted where feedinme.receipt <> deleted.receipt
      

  12.   

    不对,
    应该写成
    delete feedinme from deleted where feedinme.receipt <> deleted.receipt谢谢 tj_dns(愉快的登山者), lifeforu(苍白到底),zarge(鲨至),zjcxc(邹建) ,大力.zhouzhouzhou(人生程序),happy_0325(快乐)(按出场顺序排名:-)).
    可是我觉得应该还可以用其它方法的....
      

  13.   

    啊呀!不对呀!不行呀!....
    这句不对delete feedinme from deleted where feedinme.receipt = deleted.receipt
    会把所有的记录删除...