指定合併發行項的衝突追蹤與解決層級
本主題描述如何使用 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>] 對話方塊中可用。 如需有關使用此精靈及存取此對話方塊的詳細資訊,請參閱<建立發行集>和<檢視及修改發行集屬性>。
若要指定資料列層級追蹤或資料行層級追蹤
在「新增發行集精靈」的 [發行項] 頁面,或者在 [發行集屬性 - <Publication>] 對話方塊中,選取一個資料表。
按一下 [發行項屬性],然後按一下 [設定反白顯示資料表發行項的屬性] 或 [設定所有資料表發行項的屬性]。
在 [發行項屬性 <Article>] 對話方塊的 [屬性] 索引標籤中,針對 [追蹤層級] 屬性選取下列其中一個值:[資料列層級追蹤] 或 [資料行層級追蹤]。
如果您是在 [發行集屬性 - <Publication>] 對話方塊中,請按一下 [確定] 以儲存並關閉對話方塊。
[Top]
使用 Transact-SQL
為新的合併發行項指定衝突追蹤選項
在發行集資料庫的發行者上,執行 sp_addmergearticle,並為 @column_tracking 指定下列其中一個值:
true - 針對發行項使用資料行層級追蹤。
false - 使用資料列層級追蹤,這是預設值。
為合併發行項變更衝突追蹤選項
若要為合併發行項判斷衝突追蹤選項,請執行 sp_helpmergearticle。 請注意結果集中發行項的 column_tracking 選項值。 1 的值表示使用資料行層級追蹤,0 的值表示使用資料列層級追蹤。
在發行集資料庫的發行者上,執行 sp_changemergearticle。 為 @property 指定 column_tracking 的值,並為 @value 指定下列其中一個值:
true - 針對發行項使用資料行層級追蹤。
false - 使用資料列層級追蹤,這是預設值。
同時針對 @force_invalidate_snapshot 和 @force_reinit_subscription 指定 1 的值。
[Top]