共用方式為


Microsoft解析程式 COM-Based

SQL Server 提供的所有 COM 型解析程式都會處理更新衝突,若有需要,它們也會處理插入和刪除衝突。 它們都會處理數據行追蹤;大部分也會處理數據列追蹤。 這些和所有其他 COM 型解析程式都會宣告其可處理的衝突類型,而合併代理程式會針對所有其他衝突類型使用預設解析程式。

解析程式會在 SQL Server 的安裝程式期間安裝。 執行 sp_enumcustomresolvers 預存程式,以檢視計算機上註冊的所有衝突解決器。 執行程序會在個別的結果集中顯示每個解析器的描述和全域唯一識別碼(GUID)。

若要指定解析程式,請參閱 指定合併發行項解析程式

下表描述特定解析程序的屬性。

名稱 必要輸入 說明 評論
Microsoft SQL Server 加法衝突解析器 要加總的數據行名稱。 它必須有算術數據類型(例如 intsmallintnumeric 等等)。 衝突獲勝者是從優先順序值決定的。 指定的數據行值會設定為來源和目的地數據行值的總和。 如果其中一個欄位設定為 NULL,則會被設定為另一個欄位的值。 僅支援更新衝突的列追蹤功能。
Microsoft SQL Server 平均衝突解析器 要計算平均值的欄位名稱。 它必須有算術數據類型(例如 intsmallintnumeric 等等)。 衝突獲勝者是從優先順序值決定的。 產生的數據行值會設定為來源和目的地數據行值的平均值。 如果其中一個設定為 NULL,則會被設定成另一個欄位的值。 僅支援更新衝突,僅限列追蹤。
Microsoft SQL Server DATETIME (Earlier Wins) 衝突解決程式 用來判斷衝突獲勝者的欄位名稱。 它必須有 datetime 資料類型。 具有較早 日期時間 值的欄位決定衝突的勝方。 如果其中一個設定為 NULL,則包含另一個的數據列會是獲勝者。 支援更新衝突、列和欄追蹤。 數據行值會直接比較,而且不會針對不同的時區進行調整。
Microsoft SQL Server DATETIME (後者為準)衝突解決器 要用來判斷衝突獲勝者的數據行名稱。 它必須有 datetime 資料類型。 持有較晚 日期時間 值的資料行會決定衝突中的勝方。 如果其中一個設定為 NULL,則包含另一個的數據列會是獲勝者。 支援更新衝突、列和行追蹤。
Microsoft SQL Server 最大衝突解決程序 用於判斷衝突獲勝者的欄位名稱。 它必須有算術數據類型(例如 intsmallintnumeric 等等)。 列中具有較大數值的會決定衝突中的獲勝者。 如果其中一個設定為 NULL,則包含另一個的數據列會是獲勝者。 支援列與行追蹤。
Microsoft SQL Server 最小衝突解決者 用來判定衝突贏家的欄位名稱。 它必須有算術數據類型(例如 intsmallintnumeric 等等)。 具有較小數值的欄會決定衝突的贏家。 如果其中一個設定為 NULL,則包含另一個的數據列會是獲勝者。 支援更新衝突,以及行和列的追蹤。
Microsoft SQL Server 合併文字衝突解決器 文字欄位名稱和分隔符,例如 @resolver_info = '[col1][===]' 衝突獲勝者是從優先順序值決定的。 衝突的文字欄設為合併值,包含共用前綴,接著是發行者的唯一部分,再由分隔符號隔開,最後是訂閱者的唯一部分。 僅支援更新衝突和欄位追蹤。
Microsoft SQL Server 訂閱者優先衝突解決程式 沒有輸入。 訂閱者,無論它是來源或目的地,都是贏家。 支援所有衝突類型。
Microsoft SQL Server 優先權欄位解析器 要用來判斷衝突獲勝者的欄位名稱。 它必須有算術數據類型(例如 intsmallintnumeric 等等)。 具有較大數值的欄位會決定衝突的勝利者。 如果其中一個設定為 NULL,則包含另一個的數據列會是獲勝者。 支援更新衝突、行列追蹤。
Microsoft SQL Server 僅上傳衝突解決器 沒有輸入。 已接受上傳至發行者的變更;變更不會下載至訂閱者。 支援所有衝突類型。
微軟 SQL Server 僅下載衝突解析器 沒有輸入。 上傳至發行者的變更會遭到拒絕;變更會下載至訂閱者。 支援所有衝突類型。
Microsoft SQL Server 預存程序解析程式 解析程式應該呼叫的預存程式名稱,以處理衝突。 衝突解決取決於您指定的預存程式中的邏輯。 支援處理更新衝突。 如需詳細資訊,請參閱 實作合併發行項的自定義衝突解決器

另請參閱

進階的合併複製衝突檢測與解析
sp_enumcustomresolvers (Transact-SQL)