[PRB] 一括操作を行うとマージ レプリケーションで複写されない

文書翻訳 文書翻訳
文書番号: 275680 - 対象製品
この記事は、以前は次の ID で公開されていました: JP275680
すべて展開する | すべて折りたたむ

目次

現象

bcp コマンドライン ユーティリティ、Transact-SQL BULK INSERT ステートメント、一括コピー API、または SQL Server データ変換サービス (DTS) などの一括操作を使用して、マージ レプリケーションに参加するテーブルにデータを読み込むと、特定の手法を使用しない限り、挿入された行はほかのサーバーにレプリケートされません。

原因

これらの一括操作は、大量のデータを高速かつ効率的に読み込むために最適化されているため、デフォルトでは、一括操作は挿入されたデータを受け取るテーブルでトリガを起動しません。マージ レプリケーションは、パブリッシャとサブスクライバの間の変更を追跡するために、参加しているテーブル上のシステム トリガを使用する必要がある為、トリガが起動されないと行をレプリケートすることができません。

回避策

この問題の回避策は、データの一括コピーの方法と、使用している SQL Server のバージョンによって異なります。

  • SQL Server DTS を使用して行を挿入している場合、[データ変換タスクのプロパティ] の [オプション] タブの [高速読み取りを使用] チェック ボックス (デフォルトではオンになっている) をオフにします。ただし、SQL Server 2000 の一括挿入タスクは [高速読み取りを使用] チェック ボックスを変更する機能を公開しておらず、データ変換タスクだけがこの機能を公開しています。

  • SQL Server 2000 で bcp コマンドライン ユーティリティまたは Transact-SQL BULK INSERT ステートメントを使用している場合、FIRE_TRIGGERS オプションを使用する必要があります。SQL Server Version 7.0 では FIRE_TRIGGERS オプションを使用できないことに注意してください。SQL Server Version 7.0 では一括操作のための FIRE_TRIGGERS オプションが使用できないので、DTS を除くすべての一括操作ではサブスクライバに行がレプリケートされません。

  • ODBC を経由して一括コピー API を使用する場合、bcp_control() 関数の呼び出しによって適切な接続ハンドルで FIRE_TRIGGERS オプションを有効にする必要があります。

  • IRowsetFastLoad OLE DB インターフェイスを使用する場合、IOpenRowset インターフェイスの SSPROP_FASTLOADOPTIONS プロパティの FIRE_TRIGGERS オプションを指定します。

詳細

マージ レプリケーションでパブリケーションにレプリケートされる INSERT コマンド、DELETE コマンド、および UPDATE コマンドが MSmerge_contents テーブルと MSmerge_tombstone テーブルに追加されると、これらのコマンドはマージ エージェントによって追跡されます。レプリケーションのセットアップ中にテーブルで作成されたシステム トリガによって、これらのテーブルに行が追加されます。

一括操作は変換先テーブルにあるテーブル制約を確認せず、変換先テーブルでトリガの起動もしません。その結果、マージ レプリケーションのシステム トリガは起動されません。これらのトリガが起動されないので、一括挿入操作によって "影響のある" 行が MSmerge_contents テーブルに追加されず、サブスクライバにレプリケートされません。

関連情報

FIRE_TRIGGERS オプションが指定された場合の変換先テーブルにおけるトリガの実行の影響について詳しくは、SQL Server 2000 Books Online の「bcp と BULK INSERT の使用」を参照してください。

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 275680 (最終更新日 2001-06-25) をもとに作成したものです。

プロパティ

文書番号: 275680 - 最終更新日: 2004年3月1日 - リビジョン: 3.1
この資料は以下の製品について記述したものです。
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
キーワード:?
kbprb KB275680
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com