共用方式為


指定合併發行項的衝突追蹤與解決層級

本主題描述如何使用 SQL Server Management Studio 或 Transact-SQL,在 SQL Server 2012 中針對合併發行項指定衝突追蹤和解析層級。

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

本主題內容

  • 開始之前:

    限制事項

  • 若要指定合併發行項的衝突追蹤與解析層級,請使用:

    SQL Server Management Studio

    Transact-SQL

開始之前

限制事項

  • 如果您在訂閱初始化之後要修改追蹤層級,則這些訂閱必須重新初始化。 如需屬性變更效果的詳細資訊,請參閱<變更發行集與發行項屬性>。

  • 若使用資料列層級追蹤和資料行層級追蹤,則衝突解決始終在資料列層級執行:優先資料列會覆寫失敗資料列。 合併式複寫還允許您指定在邏輯記錄層級追蹤並解決衝突,但是 SQL Server Management Studio 中並未提供這些選項。 如需這些設定複寫預存程序之選項的詳細資訊,請參閱<定義合併資料表發行項之間的邏輯記錄關聯性>。

搭配回到頁首連結使用的箭頭圖示[Top]

使用 SQL Server Management Studio

[發行項屬性] 對話方塊的 [屬性] 索引標籤上指定合併發行項的資料列層級追蹤或資料行層級追蹤,該對話方塊在「新增發行集精靈」和 [發行集屬性 - <Publication>] 對話方塊中可用。 如需有關使用此精靈及存取此對話方塊的詳細資訊,請參閱<建立發行集>和<檢視及修改發行集屬性>。

若要指定資料列層級追蹤或資料行層級追蹤

  1. 在「新增發行集精靈」的 [發行項] 頁面,或者在 [發行集屬性 - <Publication>] 對話方塊中,選取一個資料表。

  2. 按一下 [發行項屬性],然後按一下 [設定反白顯示資料表發行項的屬性][設定所有資料表發行項的屬性]

  3. [發行項屬性 <Article>] 對話方塊的 [屬性] 索引標籤中,針對 [追蹤層級] 屬性選取下列其中一個值:[資料列層級追蹤][資料行層級追蹤]

  4. 如果您是在 [發行集屬性 - <Publication>] 對話方塊中,請按一下 [確定] 以儲存並關閉對話方塊。

搭配回到頁首連結使用的箭頭圖示[Top]

使用 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 的值。

搭配回到頁首連結使用的箭頭圖示[Top]

請參閱

概念

進階合併式複寫衝突偵測與解決

偵測和解決邏輯記錄中的衝突

定義合併資料表發行項之間的邏輯記錄關聯性

偵測及解決合併式複寫衝突