--try:CREATE TRIGGER Barn_Branch_IU ON dbo.Barn_Branch instead of INSERT,update
AS 
begin 
delete Barn_Branch from Barn_Branch a,deleted b where rtrim(ltrim(a.ProBarcode))=b.ProBarcode
AND ltrim(rtrim(a.pihao))=b.piao AND ltrim(rtrim(a.BranchCode))=b.BranchCode

insert into Barn_Branch select * from inserted
end

解决方案 »

  1.   


    --这样?
    CREATE TRIGGER Barn_Branch_IU ON dbo.Barn_Branch instead of INSERT,update
    AS 
    begin 
    if exists(select 1 from Barn_Branch a where exists(select 1 from inserted where rtrim(ltrim(a.ProBarcode))=ProBarcode
         AND ltrim(rtrim(a.pihao))=piao AND ltrim(rtrim(a.BranchCode))=BranchCode))
    begin
    update Barn_Branch set Sum_Num=Sum_Num+b.Sum_Num,Pei_Price=Pei_Price+b.Pei_Price from Barn_Branch a,inserted b
    where rtrim(ltrim(a.ProBarcode))=b.ProBarcode
         AND ltrim(rtrim(a.pihao))=b.piao AND ltrim(rtrim(a.BranchCode))=b.BranchCode
    end
    else
    insert into Barn_Branch select * from inserted
    end
      

  2.   

    UPDATE Barn_Branch 
    SET  Sum_Num=Sum_Num+i.Sum_Num,
    Pei_Price=i.Pei_Price
    FROM inserted i
    WHERE Barn_Branch.ProBarcode=i.ProBarcode and Barn_Branch.pihao=i.pihao and Barn_Branch.BranchCode=i.BranchCode这样试下
      

  3.   

    看来只有用游标生成多个单条insert 语句了