概要

Unique 制約の一部であるいずれかの列が更新されるかどうかは、SQL Server の「遅延更新」として、削除のペアとしては、更新プログラムを実装すると操作を挿入します。この「遅延更新」すると、レプリケーションの削除のペアを送信すると、サブスクライバーにINSERTステートメントです。遅延更新を引き起こす可能性のあるその他の場合もあります。したがって、 UPDATEトリガーまたはサブスクライバー側でカスタムのストアド プロシージャで実装するビジネス ロジックを削除するに含まれますも/INSERTトリガーまたはストアド プロシージャのカスタムです。

詳細

トランザクション レプリケーションの既定の動作は、使用するには
挿入、更新および削除するカスタム ストアド プロシージャをサブスクライバーで変更を適用します。

INSERTステートメントがパブリッシャーで行われた挿入ストアド プロシージャの呼び出しを通じてサブスクライバーに適用されます。同様に、 DELETEのステートメントは、削除ストアド プロシージャの呼び出しで適用されます。

ただし、「遅延更新」として、更新ステートメントを実行すると、ログ リーダー エージェントの削除のペアを配置すると、格納されている更新プログラムではなくサブスクライバーに適用するディストリビューション データベースに挿入ストアド プロシージャを呼び出すプロシージャ呼び出しです。たとえば、TABLE1、これら 3 つの列を持つという名前のパブリッシュするテーブルがあるとします。

  • col1 int

  • col2 int

  • col3 varchar(30).

Table1 という名前でのみ一意の制約は、主キー制約を列 1 に定義されます。1 つのレコード (1, 1 は、' ダラス') を使用するいると仮定します。

このコードを実行するとします。

UPDATE TABLE1 set col1 = 3 where col2 = 'Dallas'

UPDATEステートメントは、SQL Server によって削除のペアとして実装する以降のINSERTステートメントを更新、定義されている一意のインデックスを持つ列 1 とします。ログリーダーが削除のペアを配置するため、/ディストリビューション データベースに呼び出しを挿入します。トリガーまたはカスタムのストアド プロシージャをサブスクライバーに存在するすべてのビジネス ロジックにも影響することができます。トリガーを削除し、挿入またはこのような状況を処理するストアド プロシージャに追加のビジネス ロジックを組み込む必要があります。

1 つのロジックを使用して、削除としてレプリケートされる、すべての更新コマンドを選択するかどうかは/挿入のペアでは、この資料で説明したように、トレース フラグ有効化することができます。

160181 INF: トレース フラグは削除と挿入のペアとしての更新をレプリケートするには
さらに、文書内で水平方向のフィルターを使用して、更新した行がフィルターの条件を満たしていない場合は、購読者にのみ削除プロシージャ呼び出しが送信されます。更新された行が以前にフィルター条件を満たしていませんでしたが、更新後の条件を満たしている、レプリケーション ・ プロセスを通じてのみ、挿入プロシージャの呼び出しが送信されます。


上記の例では、table1 という名前で定義されている水平方向のフィルターもあることを想定しています: ある col2 = 'ダラス' です。場合はこのコードを実行します。

UPDATE table1 set col2 = 'New York' where col1 = 3

ログリーダー エージェントは、更新された行は水平方向のフィルター条件を満たしていないため、サブスクライバーに適用される削除ストアド プロシージャ呼び出しを配置するだけです。

ここでは、このコードを実行する場合:

UPDATE table1 set col2 = 'Dallas' where col1 = 3

ログリーダーでは、行でした以前は、フィルター条件を満たしていないためにのみ挿入ストアド プロシージャの呼び出しが生成されます。

パブリッシャーで更新操作が実行されたが適切なコマンドのみがサブスクライバーで適用されます。

関連情報

SQL Server 2000 Service Pack 1 またはそれ以降、次の資料、マイクロソフト サポート技術情報を参照してください。

302341 INF: トランザクション レプリケーションでのシングルトンの更新プログラムを有効にする新しいトレース フラグ

ヘルプを表示

スキルを磨く
トレーニングの探索
新機能を最初に入手
Microsoft Insider に参加する

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?

ご意見をいただきありがとうございます。

×