4

I need to create a SQL Server database that will recieve updates by some replication mechanism from another database. I need to write insert, update and delete triggers that will execute when this replilcation occurs.

I have experience with triggers but not with replication.

Should I use Transactional or Merge replication, or does it matter?

Will a trigger designed to run when a simple SQL insert statement is executed also run when replication occurs?

4

4 に答える 4

4

MSDNのCREATE TRIGGER 構文:

CREATE TRIGGER
...
[ NOT FOR REPLICATION ] 

これは、レプリケーションでの実行がトリガーのデフォルトの動作であり、指定することで無効にできることを示していますNOT FOR REPLICATION

于 2009-02-12T17:35:58.240 に答える
4

まあそれは依存します。

適用する予定の更新が分離されたテーブルに対するものである場合、つまり、特定のテーブルのすべてのデータがパブリッシャーからのみ取得される場合は、トランザクション レプリケーションを使用できます。

一方、テーブル コンテンツ、つまり注文テーブルを結合し、両方のサイトで注文が行われるようにする場合は、マージ レプリケーションの使用を検討する必要があります。

トリガーに関しては、その動作を制御するために適用できる「レプリケーション用ではない」構成があります。参考までに以下の記事をご覧ください。

http://msdn.microsoft.com/en-us/library/ms152529.aspx

乾杯、ジョン

于 2009-02-12T17:38:44.503 に答える
0

トリガーの代わりに、いくつかの代替オプションが用意されています。

  1. サブスクライバー (宛先) データベースの複製手順を変更できます。
  2. 2008 を使用している場合は、サブスクライバーで「何かをしたい」テーブルに対して Change Tracking を使用してから、個々の行ではなく「セット ベース」のデータを処理するバッチ プロセスを作成できます。たとえば、すべての X を実行する SSIS パッケージ。
于 2009-02-16T09:44:34.693 に答える