次の方法で共有


[テーブル行のフィルター選択]

[テーブル行のフィルター選択] ページでは、次のことを行うことができます。

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

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

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

フィルター オプションの詳細については、「パブリッシュされたデータのフィルター選択」を参照してください。フィルター選択は、[パブリケーションのプロパティ] ダイアログ ボックスの [行のフィルター選択] ページで変更することができます。

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

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

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

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

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

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

レプリケーションで行を識別するために使用される rowguidcol はフィルターに含めないでください。既定では、これは、マージ レプリケーションの設定時に追加された列で、rowguid という名前が付いています。

オプション

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

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

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

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

      注意

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

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

      注意

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

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

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

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

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

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

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