如何:指定合併發行項的衝突追蹤和解決層級 (複寫 Transact-SQL 程式設計)

如果同步處理合併式發行集的訂閱,複寫會檢查在發行者和訂閱者上,是否有對相同資料所做之變更所造成的衝突。您可以指定要在資料列層級偵測衝突 (此時會將資料列的任何變更視為衝突),或是在資料行層級偵測衝突 (此時只會將相同資料列和資料行的任何變更視為衝突)。發行項的衝突解決會在資料列層級執行。如需有關使用邏輯記錄時衝突偵測及解決的詳細資訊,請參閱<偵測和解決邏輯記錄中的衝突>。您可以透過程式設計方式指定,在建立發行項時及定義發行項之後要如何追蹤衝突。

為新的合併發行項指定衝突追蹤選項

  • 在發行集資料庫的發行者上,執行 sp_addmergearticle,並為 @column_tracking 指定下列其中一個值:

    • true - 針對發行項使用資料行層級追蹤。

    • false - 使用資料列層級追蹤,這是預設值。

為合併發行項變更衝突追蹤選項

  1. 若要為合併發行項判斷衝突追蹤選項,請執行 sp_helpmergearticle。請注意結果集中發行項的 column_tracking 選項值。1 的值表示使用資料行層級追蹤,0 的值表示使用資料列層級追蹤。

  2. 在發行集資料庫的發行者上,執行 sp_changemergearticle。為 @property 指定 column_tracking 的值,並為 @value 指定下列其中一個值:

    • true - 針對發行項使用資料行層級追蹤。

    • false - 使用資料列層級追蹤,這是預設值。

    同時針對 @force_invalidate_snapshot@force_reinit_subscription 指定 1 的值。