[パブリケーションのプロパティ]、[行のフィルタ選択]

[パブリケーションのプロパティ] ダイアログ ボックスの [行のフィルタ選択] ページを使用すると、次のフィルタを追加、編集、または削除できます。

  • 静的行フィルタをスナップショット パブリケーション、トランザクション パブリケーション、およびマージ パブリケーションのテーブル アーティクルに適用します。

  • パラメータ化された行フィルタをマージ パブリケーションのテーブル アーティクルに適用します。

  • 結合フィルタを使用して、マージ テーブル アーティクルのフィルタを関連テーブル アーティクルに拡張します。

フィルタ選択オプションの詳細については、「パブリッシュされたデータのフィルタ選択」を参照してください。

注意注意

フィルタの追加、編集、または削除を行うには、パブリケーションのための新しいスナップショットが必要であり、すべてのサブスクリプションを再初期化する必要があります。

アプリケーションのパフォーマンスを最大限にし、なおかつリモート コンピュータで必要とされる記憶容量を少なくする場合、または特定のデータの使用を特定のサブスクライバに制限する場合には、必要なデータだけをパブリッシュします。パブリケーションには、フィルタ済み、フィルタなしの双方のテーブルを含めることができます。たとえば、会社製品のすべてを収めたテーブル (フィルタなし) を含める一方で、行フィルタを使用して、特定の地域についてフィルタ済みの顧客のテーブルを提供できます。パブリッシュされたデータをフィルタ選択することによって、次のことができるようになります。

  • ネットワークに送信されるデータの量を最小限に抑えられます。

  • サブスクライバで必要となる保存領域を削減できます。

  • 各サブスクライバの要件に基づいてパブリケーションとアプリケーションをカスタマイズできます。

  • サブスクライバがデータを更新する場合に、異なるデータ パーティションを異なるサブスクライバに送信できるので (2 つのサブスクライバが同一のデータ値を更新することはない)、競合をなくす、または減らすことができます。

  • 機密データの送信を回避できます。行フィルタと列フィルタを使用して、サブスクライバによるデータへのアクセスを制限できます。マージ レプリケーションにおいて HOST_NAME() を含むパラメータ化されたフィルタを使用する場合は、セキュリティ上の留意事項があります。詳細については、「パラメータ化された行フィルタ」の「HOST_NAME() によるフィルタ選択」を参照してください。

オプション

  • [フィルタ選択されたテーブル]
    このペインには、パブリケーションのテーブル アーティクルに追加したフィルタが表示されます。行フィルタが設定されているテーブルは、ペイン内で最上位レベルのノードとして表示されます。マージ パブリケーションの場合、結合フィルタを介してフィルタ選択が拡張されているテーブルは、子ノードとして表示されます。

  • [追加]
    [追加] をクリックすると、テーブル アーティクルをフィルタ選択するためのダイアログ ボックスが表示されます。スナップショット パブリケーションまたはトランザクション パブリケーションに対して [追加] をクリックすると、ダイアログ ボックスが即座に表示されます。マージ パブリケーションに対して [追加] をクリックすると、[フィルタの追加][選択したフィルタを拡張するために結合を追加する][フィルタを自動的に生成] の 3 つのオプションが表示されます。

    • [フィルタの追加] をクリックすると、[フィルタの追加] ダイアログ ボックスが表示されます。このダイアログ ボックスでは、行フィルタをテーブル アーティクルに適用できます。たとえば、[フィルタの追加] ダイアログ ボックスを使用して、顧客データ テーブルをサブスクライバにレプリケートするときにフランスの顧客に関するデータだけを格納するように指定できます。

    • [選択したフィルタを拡張するために結合を追加する] をクリックすると、[結合の追加] ダイアログ ボックスが表示されます。[結合の追加] ダイアログ ボックスでは、行フィルタを拡張して、行フィルタが設定されているテーブルに関連付けられているテーブル内のデータをフィルタ選択するように設定できます。たとえば、フランスの顧客に関するデータだけを含むように顧客テーブルにフィルタが設定され、顧客注文のための関連テーブルがある場合は、2 つのテーブル間に結合を定義して、フランスの顧客からの注文だけが注文テーブルに含まれるように設定できます。

      注意注意

      このオプションは、フィルタ ペイン内で結合のベース テーブルを最初に選択している場合だけ利用できます。

    • [フィルタを自動的に生成] をクリックすると、[フィルタの生成] ダイアログ ボックスが表示されます。このダイアログ ボックスでは、マージ パブリケーション内の 1 つのテーブルに対して行フィルタを定義できます。この行フィルタは、レプリケーションによって、外部キー リレーションシップを介して関連付けられる他のテーブルに自動的に拡張されます。たとえば、パブリケーションに、顧客テーブル、(顧客テーブルへの外部キーを含む) 注文テーブル、および (注文テーブルへの外部キーを含む) 受注明細テーブルの 3 つのテーブルを含めることができます。顧客テーブルに行フィルタを定義すると、レプリケーションによってそれが他のテーブルに拡張されます。

      注意注意

      レプリケーションによってフィルタを自動的に生成した場合、パブリケーションの既存のフィルタは削除されます。自動生成したフィルタと手動で指定したフィルタの両方を含めるには、フィルタの生成を最初に行います。自動生成したフィルタは、1 つのパブリケーションにつき 1 セットしか指定できません。

  • [編集]
    フィルタ ペインで行フィルタまたは結合フィルタを選択し、[編集] をクリックすると、[フィルタの編集] ダイアログ ボックスまたは [結合の編集] ダイアログ ボックスが表示されます。

  • [削除]
    フィルタ ペインで行フィルタまたは結合フィルタを選択し、[削除] をクリックすると、フィルタを削除できます。

  • [テーブルの検索]
    マージ パブリケーションのみです。[テーブルの検索] をクリックすると、複雑なフィルタ ツリー内でテーブルを検索できます。複雑なリレーションシップを持つデータベースでは、1 つのテーブルを複数のテーブルに結合できます。その場合、テーブルはフィルタ ツリー内で複数の場所に表示されます。

    実際のテーブルはツリー内の 1 つの場所に表示されます。他の場所では、テーブルがショートカットによって表されます。テーブルのショートカットはテーブルの単なる参照であり、テーブルの子ノードを示すものではありません。ショートカット ノードはショートカット矢印付きで示されます。このノードを展開すると、[<tablename> のテーブルを表示するには、[テーブルの検索] をクリックします。] というテキストが表示されます。

    ペイン内でショートカット ノードを選択し、[テーブルの検索] をクリックすると、ペインが展開され、テーブルが強調表示されます。ショートカット ノードを選択せずに [テーブルの検索] をクリックすると、[テーブルの検索] ダイアログ ボックスが表示されます。

  • [フィルタ]
    フィルタ ペインで選択されたフィルタの Transact-SQL 定義を含みます。