兩數據庫在同一sql  server 上
不同數據庫A,,B,分別有表a,b,兩表結構相同,現在數據庫A建立了修改的觸發器,如果a做了修改,a,b同樣存在的數據,那麼a修改了,b同時也修改,如果a修改的數據,b不存在的,那麼要求a數據同樣修改成功,而觸發不起作用,該如何實現這樣的觸發?我在觸發器加條件語句也不起作用如IF ...else ....我現在隻實現了a,b表同時存在的數據修改的觸發,如果a有的數據被修改了,而b表不存在此數據,希望觸發器不起作用。請高手告訴一下,我將感激不盡!  
create trigger synu_iebo00h on sa.iebo00h
for update
as
begin  tran
  if exists (select b.bo_no ,b.bo_ver from b,inserted i where i.bo_no=b.bo_no and b.bo_ver=i.bo_ver)   
  update b set aa=....
    。。
commit tran以上隻實現了,a,b相同的數據
而a,b數據不等該如何修改我的觸發器呢?

解决方案 »

  1.   

    create trigger synu_iebo00h on sa.iebo00h
    after update--定义after类型的触发器
      

  2.   

    隻定義after類型的觸發器?其他的條件還需要加不?我測試,在b表沒有的數據,a表做修改還是修改不成功,剛接觸觸發器,roy_88不要笑話哦。roy_88能否給說清楚點呢?…_…。
      

  3.   

    update时只要是内连接就行。    update b set 需更新的字段1=a.字段1,需更新的字段2=a.字段2
        from insert as a,B..b as b
        where a.关联字段=b.关联字段
      

  4.   

    pdate b set 需更新的字段1=a.字段1,需更新的字段2=a.字段2
    from insert as a,B..b as b
    where a.关联字段=b.关联字段insert应为inserted
      

  5.   

    CXMCXM,update 。。這句字段多我就沒有寫出來,我知道該如何寫。
    if  exists  (select  b.bo_no  ,b.bo_ver  from B..b b,inserted  i  where  i.bo_no=b.bo_no  and  b.bo_ver=i.bo_ver)   這句,因為寫得急,所以少了B..b 。但是這樣寫還是沒有達到我要的結果,exists,就執update,not exists,update 返回@rowacount=0,但a就不能更新成功。
    你說的內連接是啥意思?我不明白哦,自己超級笨笨了。
    還有roy_88說要定義為after類的觸發器,這跟不加有after有什麼區別呢?還有instead of 類的也不太明白在什麼情況下用。