日期:2014-05-16  浏览次数:20537 次

有关SQL2005触发器的求救
现在有二张表,分别如下:
A表:
aID  Name aOutNumber bOutNumber aRemarkes

B表:(Type值等于A或B)
bID DateTime OutNumber bRemarkes Type aID

二表关连是aID

现在要对B表的OutNumber写一个UPDATE触发器:
如果B表中的Type=A,对B表OutNumber做UPDATE时,要求同时更新A表中的aOutNumber
如果B表中的Type=B,对B表OutNumber做UPDATE时,要求同时理新A表上的bOutNumber



------解决方案--------------------

create trigger tr_tableb
on B表 for update
as
begin
 if update(OutNumber)
 begin
  update a
   set a.aOutNumber=case when b.[Type]='A' then b.OutNumber else a.aOutNumber end,
       a.bOutNumber=case when b.[Type]='B' then b.OutNumber else a.bOutNumber end
   from A表 a
   inner join inserted b on a.aID=b.aID
 end
end