Microsoft COM ベースの競合回避モジュール
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 などの算術データ型である必要があります。 |
優先される競合データは優先度値によって決まります。指定された列の値は、変換元の列の値と変換先の列の値を合計した値に設定されます。1 つを NULL に設定した場合、他の列の値に設定されます。 |
更新の競合を対象とし、列追跡のみを行います。 |
Microsoft SQL Server Averaging Conflict Resolver |
平均をとる列の名前。int、smallint、numeric などの算術データ型である必要があります。 |
優先される競合データは優先度値によって決まります。結果の列の値は、変換元の列の値と変換先の列の値の平均値に設定されます。1 つを NULL に設定した場合、他の列の値に設定されます。 |
更新の競合を対象とし、列追跡のみを行います。 |
Microsoft SQL Server DATETIME (Earlier Wins) Conflict Resolver |
競合で優先されるデータを指定するのに使用する列の名前。datetime 型である必要があります。 |
datetime 値で日付の古い列のデータが優先されます。1 つを NULL に設定した場合、それ以外を格納する行が競合で優先されます。 |
更新の競合を対象とし、行および列追跡を行います。列の値は直接比較され、タイム ゾーンが異なる場合、調整は実行されません。 |
Microsoft SQL Server DATETIME (Later Wins) Conflict Resolver |
競合で優先されるデータを指定するのに使用する列の名前。datetime 型である必要があります。 |
datetime 値で日付の新しい列のデータが優先されます。1 つを NULL に設定した場合、それ以外を格納する行が競合で優先されます。 |
更新の競合を対象とし、行および列追跡を行います。 |
Microsoft SQL Server Maximum Conflict Resolver |
競合で優先されるデータを指定するのに使用する列の名前。int、smallint、numeric などの算術データ型である必要があります。 |
数値の大きい列のデータが優先されます。1 つを NULL に設定した場合、それ以外を格納する行が競合で優先されます。 |
行および列追跡を行います。 |
Microsoft SQL Server Minimum Conflict Resolver |
競合で優先されるデータを指定するのに使用する列の名前。int、smallint、numeric などの算術データ型である必要があります。 |
数値の小さい列のデータが優先されます。1 つを 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 などの算術データ型である必要があります。 |
数値の大きい列のデータが優先されます。1 つを NULL に設定した場合、それ以外を格納する行が競合で優先されます。 |
更新の競合を対象とし、行および列追跡を行います。 |
Microsoft SQL Server Upload Only Conflict Resolver |
入力なし。 |
パブリッシャにアップロードされた変更が許容されます。変更はサブスクライバにはダウンロードされません。 |
全種類の競合を対象とします。 |
Microsoft SQL Server Download Only Conflict Resolver |
入力なし。 |
パブリッシャにアップロードされた変更は拒否されます。変更はサブスクライバにダウンロードされます。 |
全種類の競合を対象とします。 |
Microsoft SQLServer Stored Procedure Resolver |
競合を処理するために競合回避モジュールが呼び出すストアド プロシージャの名前。 |
競合の回避は、指定したストアド プロシージャのロジックに依存します。 |
更新の競合を対象とします。詳細については、「マージ アーティクルに対してストアド プロシージャ ベースのカスタム競合回避モジュールを実装する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。 |