在OrderDetail上定义一个触发器,如果购物者改变了定单的数量,玩具的成本也自动地改变。
(提示:Toycost = Quantity * ToyRate)
数量:Quantity 
成本:Toycost 
谢谢了 

解决方案 »

  1.   

    create trigger mytrig on OrderDetail for update
    as
    begin
      update OrderDetail set Toycost = Quantity * ToyRate 
      where 关键字 = (select 关键字 from inserted)
    endorcreate trigger mytrig on OrderDetail for update
    as
    begin
      update OrderDetail set Toycost = i.Quantity * t.ToyRate 
      from OrderDetail t , inserted i
      where t.关键字 = i.关键字
    end
      

  2.   

    create trigger mytrig on OrderDetail for update
    as
    begin
      update OrderDetail set Toycost = Toycost + s
      from ta t , (select 关键字,sum(Quantity * ToyRate) as s inserted group by 关键字)i
      where t.关键字 = i.关键字
    end
      

  3.   

    --事后触发器
    create trigger MyTrigger 
    on OrderDetail
    AFTER update
    as
    begin
    declare @id int
    select @id=OrderDetail.GId from OrderDetail,deleted
    where OrderDetail.GId=deleted.GId and OrderDetail.Quantity<>deleted.Quantity
    update OrderDetail set ToyRate=Quantity*5(这里的5是指ToyRate) where OrderDetail.GId=@id
    end
    --测试语句
    update OrderDetail set Quantity=30 where GId=1