0

Aデータが挿入されるメインのSQLServerがあります。対象のテーブルはA次のようになります。

Name|Entry Time|Exit Time|Comments

Bこのメインテーブルから、別のサーバー上に同じデータを含むテーブルを作成しますが、句Aを使用していくつかの追加のフィルターを使用します。WHEREWHERE Name IN ('John', 'Adam', 'Jack')

これが何と呼ばれているのか、SQL Serverでネイティブにサポートされているのかどうかはわかりません(または、これを実現するためのスクリプトを設定する必要があります)。レプリケーションとは、データ全体をレプリケーションすることを意味しますが、誰かが私が探しているものと、これを実現する方法を教えてもらえますか?

4

2 に答える 2

1

SQL Serverを使用したトランザクションレプリケーションは、データをフィルタリングする機能をサポートしています。実際、レプリケーションを設定すると、フィルター(Where句)を作成できる[フィルターの追加]ダイアログボックス(SSMSを使用している場合)があります。

これについて詳しくは、こちらをご覧ください。

于 2012-06-18T00:48:06.347 に答える
1

トランザクションレプリケーションは記事のフィルターをサポートしますが、正直に言うと、フィルター付きの記事で設定したことはありません。この記事は、BooksOnlineのこのトピックと同様に役立つ場合があります。

テーブルが1つしかない場合や、レプリケーションに飛び込むのが苦手な場合は、リモートテーブルにトリガーを設定することをお勧めします(データが挿入時にテーブルに書き込まれるだけで更新されない場合は、明らかに簡単になります)。ただし、リモートサーバーがダウンしている状況に対処するには、ロジックを設定する必要があります。

サーバーBを継続的に最新の状態にする必要がない場合は、3番目の解決策が実行可能である可能性があります。つまり、外部結合/マージを使用するか、一致するデータセットを完全にスワップアウトすることにより、ジョブを使用してn分ごとにデータを手動で移動できます。フィルタ(このシナリオではシャドウスキーマを使用して、サーバーBのリーダーへの影響を最小限に抑えています。詳細については、このdba.stackexchangeの回答を参照してください)。

于 2012-06-18T00:50:18.527 に答える