none
資料複寫,訂閱端的trigger問題請教 RRS feed

  • 問題

  • 您好:

    請問

    DB1 發佈端, 複寫到 DB2 訂閱端

    1.DB1端 有把DB2 端坐DB LINK進來, 但可否在DB1端alter DB2.dbo.table1 的trigger

      有試過在DB1 做 insert into DB2.dbo.table1 ,可以

      但 alter DB2.dbo.table1 ..trigger卻不行  , 已經是SA 的等級來直行了


    2.trigger 的寫法

    A.用inserted的 關聯寫法

    CREATE Trigger [dbo].[tr_G] ON [dbo].[G] AFTER UPDATE, INSERT, DELETE
    AS
    BEGIN
        --INSERT
        IF EXISTS(SELECT 1 FROM inserted) AND NOT EXISTS(SELECT 1 FROM deleted)
        BEGIN
    	
    	       Insert Into G( w_date,	....
    							 							
    						    )  
    		Select m.w_date,	...			   	
    
    		   From Inserted m left join Gt 
    		   on     m.w_date=t.w_date 
    		     

    B.

    CREATE        trigger [dbo].[tr_r] on [dbo].[r] AFTER INSERT, UPDATE,Delete
    AS

    Declare @run_no VARCHAR(12)
    IF @@ROWCOUNT = 0  RETURN  --未異動

    SET @run_no=(Select  isNull(run_no,'') FROM inserted)

    if @@rowcount = 0 begin
     Insert r ( whno ..... )
     Select
       r.whno,
      ....
     From  run_g r  
     Where  1=1
     .....
    end

    請問,這兩種寫法,是否會根據 trigger原本的TABLE 被 I/U/D 動作而異

    如 TABLE1 內有trigger1 ,

    若TABLE1  ,逐筆異動資料,trtigger1 應該也逐筆異動資料

    但TABLE1,整批異動資料,以上兩種寫法他也會觸發trigger1整批動作嗎?

    謝謝!



    2021年7月4日 上午 02:21

所有回覆

  • Did you enable replicate schema changes? Does replication job owner on publisher have sa rights on subscriber?
    2021年7月4日 下午 04:05
  • 您好:

    1.Did you enable replicate schema changes?

    -->這是指?

    2.Does replication job owner on publisher have sa rights on subscriber?

    -->我都用SA 下去設設定


    2021年7月18日 上午 07:32
  • 1. books online has details.

    2. sa on publish doesn't have sa rights on subscriber, replication job owner needs sa rights on both publisher and subscriber.

    2021年7月18日 下午 02:58