[フィルターの生成]

適用対象: はいSQL Server (サポートされているすべてのバージョン)

[フィルターの生成] ダイアログ ボックスでは、マージ パブリケーション内の 1 つのテーブルに対して行フィルターを定義できます。これを行うと、レプリケーションによって、外部キー リレーションシップを介して関連付けられる他のテーブルにそのフィルターが自動的に拡張されます。 たとえば、フランスの顧客データのみを含むように、フィルターを顧客テーブルに定義した場合、レプリケーションによってこのフィルターが拡張され、関連する受注テーブルや受注詳細テーブルには、フランスの顧客に関連する情報のみが含まれることになります。

オプション

このダイアログ ボックスには、テーブルに行フィルターを作成するための 3 段階のプロセスがあります。 主キーと外部キーのリレーションシップを通じて、フィルターされたテーブルと関連するテーブルにフィルターが拡張されます。 たとえば、3 つのテーブル、 CustomerSalesOrderHeader、および SalesOrderDetail に、 CustomerSalesOrderHeader のリレーションシップおよび SalesOrderHeaderSalesOrderDetail のリレーションシップが与えられている場合、 Customer に行フィルターを適用すると、レプリケーションによってこのフィルターが SalesOrderHeaderSalesOrderDetail に拡張されます。

  1. [フィルターを適用するテーブルを選択します。]

    ドロップダウン リスト ボックスからテーブルを選択します。 テーブルは、 [アーティクル] ページで選択されている場合のみ、このリスト ボックスに表示されます。

  2. [フィルター ステートメントを完成させ、サブスクライバーが受け取るテーブル行を指定します。]

    新しいフィルター ステートメントを定義します。 [列] リスト ボックスには、 [フィルターを適用するテーブルを選択します。] で選択したテーブルからパブリッシュするすべての列が一覧表示されます。 [フィルター ステートメント] テキスト領域には、次の形式の既定のテキストが表示されます。

    SELECT <published_columns> FROM [tableowner].[tablename] WHERE

    このテキストは変更できません。標準の Transact-SQL 構文を使用して、WHERE キーワードの後にフィルター句を入力します。

    重要

    パラメーター化された行フィルター句では列名に関数を適用しないことをお勧めします。これは、 LEFT([MyColumn]) = SUSER_SNAME()のように指定すると、パフォーマンスに問題が生じるためです。 フィルター句で HOST_NAME を使用していて、HOST_NAME 値をオーバーライドする場合は、CONVERT を使用するデータ型の変換が必要になる可能性があります。 このようなケースの推奨事項の詳細については、「Parameterized Row Filters」の「HOST_NAME() 値のオーバーライド」をご覧ください。

  3. [このテーブルからデータを取得するサブスクリプションの数を指定します。]

    Microsoft SQL Server 2005 (9.x) 以降のバージョンのみです。 マージ レプリケーションを使用して、お使いのデータとアプリケーションに最適なパーティションの種類を指定できます。 [このテーブルの 1 行を 1 つのサブスクリプションのみに移動する] を選択すると、マージ レプリケーションでは、重複しないパーティションのオプションが設定されます。 重複しないパーティションを事前計算済みパーティションと共に使用することで、パフォーマンスが向上します。事前計算済みパーティションに関連するアップロードの負担が、重複しないパーティションによって最小限に抑えられるためです。 重複しないパーティションのパフォーマンス上の利点は、使用するパラメーター化されたフィルターと結合フィルターが複雑になるほど明確になります。 このオプションを選択する場合は、データのパーティション分割によって、1 つの行が複数のサブスクライバーにレプリケートされないことを確認する必要があります。 詳細については、「 パラメーター化された行フィルター」トピックの「[パーティションのオプション] の設定」をご覧ください。

フィルターを追加した後で、 [OK] をクリックして終了し、ダイアログ ボックスを閉じます。 指定したフィルターは、SELECT 句のテーブルに対して解析され、実行されます。 フィルター ステートメントに構文エラーなどの問題がある場合には通知され、フィルター ステートメントを編集することができます。

ステートメントが解析された後で、レプリケーションによって必要な結合フィルターが作成されます。 このウィザードが実行されているパブリッシャーにディストリビューターを構成していない場合、ディストリビューターを構成するように要求されます。

参照

Create a Publication
パブリケーション プロパティの表示および変更
パブリッシュされたデータのフィルター処理
Join Filters
Parameterized Row Filters
データとデータベース オブジェクトのパブリッシュ