以 COM 為基礎的 Microsoft 解析程式
SQL Server 提供的所有以 COM 為基礎的解決器可處理更新衝突,如有需要,也可以處理插入與刪除衝突。它們都能處理資料行追蹤,大部分還能處理資料列追蹤。這些及所有其他的以 COM 為基礎的解決器都宣告它們所能處理的衝突類型,而「合併代理程式」使用預設解決器來處理其他所有的衝突類型。
解決器在 SQL Server 的安裝過程中安裝。執行 sp_enumcustomresolvers 預存程序以檢視電腦中註冊的所有衝突解決器。執行該程序,可顯示個別結果集中各解決器的描述和全域唯一識別碼 (GUID)。
若要指定解決器
SQL Server Management Studio: 如何:指定合併發行項解析程式 (SQL Server Management Studio)
複寫 Transact-SQL 程式設計:如何:指定合併發行項解決器 (複寫 Transact-SQL 程式設計)
下表說明了各解決器的屬性。
名稱 |
必要輸入 |
描述 |
註解 |
---|---|---|---|
Microsoft SQL Server Additive Conflict Resolver |
要加總的資料行名稱。它必須要有算術資料類型 (例如 int、smallint、numeric,等等)。 |
衝突成功者是由優先權值決定的。指定設定為來源與目的地資料行值總和的資料行值。如果其中有一個資料行設為 NULL,則結果資料行值即被設為另一資料行的值。 |
支援更新衝突,僅限資料行追蹤。 |
Microsoft SQL Server Averaging Conflict Resolver |
要取平均值的資料行名稱。它必須要有算術資料類型 (例如 int、smallint、numeric,等等)。 |
衝突成功者是由優先權值決定的。結果資料行值設定為來源與目的地資料行值的平均值。如果其中有一個資料行設為 NULL,則結果資料行值即被設為另一資料行的值。 |
支援更新衝突,僅限資料行追蹤。 |
Microsoft SQL Server DATETIME (Earlier Wins) Conflict Resolver |
要用來決定衝突成功者的資料行名稱。它必須具有 datetime 資料類型。 |
具有較早 datetime 值的資料行決定衝突成功者。如果其中有一個資料行設為 NULL,則含有另一資料行的資料列便是成功者。 |
支援更新衝突、資料列與資料行追蹤。資料行值直接進行比較,且不會依不同時區進行調整。 |
Microsoft SQL Server DATETIME (Later Wins) Conflict Resolver |
要用來決定衝突成功者的資料行名稱。它必須具有 datetime 資料類型。 |
具有較晚 datetime 值的資料行決定衝突成功者。如果其中有一個資料行設為 NULL,則含有另一資料行的資料列便是成功者。 |
支援更新衝突、資料列與資料行追蹤。 |
Microsoft SQL Server Maximum Conflict Resolver |
要用來決定衝突成功者的資料行名稱。它必須要有算術資料類型 (例如 int、smallint、numeric,等等)。 |
具有較大數值的資料行決定衝突成功者。如果其中有一個資料行設為 NULL,則含有另一資料行的資料列便是成功者。 |
支援資料列與資料行追蹤。 |
Microsoft SQL Server Minimum Conflict Resolver |
要用來決定衝突成功者的資料行名稱。它必須要有算術資料類型 (例如 int、smallint、numeric,等等)。 |
具有較小數值的資料行決定衝突成功者。如果其中有一個資料行設為 NULL,則含有另一資料行的資料列便是成功者。 |
支援更新衝突,資料列和資料行的追蹤。 |
Microsoft SQL Server Merge Text Conflict Resolver |
文字資料行與分隔符號的名稱,例如 @resolver_info = '[col1][===]'。 |
衝突成功者是由優先權值決定的。衝突中的文字資料行設定為合併值,包含通用前置詞,後面接著「發行者」的唯一部分,然後是分隔符號,最後是「訂閱者」的唯一部分。 |
支援更新衝突,僅限資料行追蹤。 |
Microsoft SQL Server Subscriber Always Wins Conflict Resolver |
無輸入。 |
無論是來源或目的地,「訂閱者」都是成功者。 |
支援所有衝突類型。 |
Microsoft SQL Server Priority Column Resolver |
要用來決定衝突成功者的資料行名稱。它必須要有算術資料類型 (例如 int、smallint、numeric,等等)。 |
具有較大數值的資料行決定衝突成功者。如果其中有一個資料行設為 NULL,則含有另一資料行的資料列便是成功者。 |
支援更新衝突,資料列和資料行的追蹤。 |
Microsoft SQL Server Upload Only Conflict Resolver |
無輸入。 |
接受上載至「發行者」的變更;變更無法下載至「訂閱者」。 |
支援所有衝突類型。 |
Microsoft SQL Server Download Only Conflict Resolver |
無輸入。 |
拒絕上載至「發行者」的變更;變更可下載至「訂閱者」。 |
支援所有衝突類型。 |
Microsoft SQL Server Stored Procedure Resolver |
解決器應呼叫預存程序的名稱來處理衝突。 |
衝突解決方案視您在預存程序中指定的邏輯而定。 |
支援更新衝突。如需詳細資訊,請參閱<如何:針對合併發行項實作以預存程序為基礎的自訂衝突解決器 (複寫 Transact-SQL 程式設計)> |