静的行フィルタを定義および変更する方法 (SQL Server Management Studio)

パブリケーションの新規作成ウィザードの [テーブル行のフィルタ選択] ページまたは [パブリケーションのプロパティ - <Publication>] ダイアログ ボックスの [行のフィルタ選択] ページで、静的行フィルタを定義、変更、および削除します。このウィザードの使用とダイアログ ボックスへのアクセスの詳細については、「パブリケーションを作成してアーティクルを定義する方法 (SQL Server Management Studio)」および「パブリケーションとアーティクルのプロパティを表示および変更する方法 (SQL Server Management Studio)」を参照してください。パブリケーションでピア ツー ピア トランザクション レプリケーションが有効な場合、テーブルはフィルタ選択できません。

注意注意

パブリケーションに対するサブスクリプションが初期化された後に、[パブリケーションのプロパティ - <Publication>] ダイアログ ボックスで静的行フィルタを追加、変更、または削除した場合は、変更を行った後で、新しいスナップショットを生成し、すべてのサブスクリプションを再初期化する必要があります。プロパティ変更の必要条件の詳細については、「パブリケーションおよびアーティクルのプロパティの変更」を参照してください。

静的行フィルタを定義するには

  1. パブリケーションの新規作成ウィザードの [テーブル行のフィルタ選択] ページ、または [パブリケーションのプロパティ - <Publication>] ダイアログ ボックスの [行のフィルタ選択] ページで行う操作は、パブリケーションの種類によって異なります。

    • スナップショット パブリケーションまたはトランザクション パブリケーションの場合は、[追加] をクリックします。

    • マージ パブリケーションの場合は、[追加] をクリックしてから [フィルタの追加] をクリックします。

  2. [フィルタの追加] ダイアログ ボックスで、ドロップダウン リスト ボックスからフィルタ選択するテーブルを選択します。

  3. [フィルタ ステートメント] テキスト領域で、フィルタ ステートメントを作成します。テキスト領域に直接入力することも、[列] ボックスから列をドラッグ アンド ドロップすることもできます。

    注意注意

    WHERE 句には、2 つの部分で構成されている名前を使用する必要があります。3 つまたは 4 つの部分で構成されている名前の使用はサポートされていません。パブリケーションが Oracle パブリッシャからのものである場合、WHERE 句は Oracle の構文に準拠する必要があります。

    • [フィルタ ステートメント] テキスト領域には、次の形式の既定のテキストが含まれています。

      SELECT <published_columns> FROM [schema].[tablename] WHERE
      
    • 既定のテキストは変更できません。標準の SQL 構文を使用して WHERE キーワードの後にフィルタ句を入力してください。完成したフィルタ句は、次のように表示されます。

      SELECT <published_columns> FROM [HumanResources].[Employee] WHERE [LoginID] = 'adventure-works\ranjit0'
      
    • 静的行フィルタには、ユーザー定義関数を含めることができます。ユーザー定義関数を指定して完成した静的行フィルタのフィルタ句は、次のように表示されます。

      SELECT <published_columns> FROM [Sales].[SalesOrderHeader] WHERE MyFunction([Freight]) > 100
      
  4. [OK] をクリックします。

  5. [パブリケーションのプロパティ - <Publication>] ダイアログ ボックスが表示されている場合は、[OK] をクリックして保存し、ダイアログ ボックスを閉じます。

静的行フィルタを変更するには

  1. パブリケーションの新規作成ウィザードの [テーブル行のフィルタ選択] ページ、または [パブリケーションのプロパティ - <Publication>] ダイアログ ボックスの [行のフィルタ選択] ページで、[フィルタ選択されたテーブル] ペイン内のフィルタを選択し、[編集] をクリックします。

  2. [フィルタの編集] ダイアログ ボックスで、フィルタを変更します。

  3. [OK] をクリックします。

静的行フィルタを削除するには

  • パブリケーションの新規作成ウィザードの [テーブル行のフィルタ選択] ページ、または [パブリケーションのプロパティ - <Publication>] ダイアログ ボックスの [行のフィルタ選択] ページで、[フィルタ選択されたテーブル] ペイン内のフィルタを選択し、[削除] をクリックします。