静的行フィルタを定義および変更する方法 (SQL Server Management Studio)
パブリケーションの新規作成ウィザードの [テーブル行のフィルタ選択] ページまたは [パブリケーションのプロパティ - <Publication>] ダイアログ ボックスの [行のフィルタ選択] ページで、静的行フィルタを定義、変更、および削除します。このウィザードの使用とダイアログ ボックスへのアクセスの詳細については、「パブリケーションを作成してアーティクルを定義する方法 (SQL Server Management Studio)」および「パブリケーションとアーティクルのプロパティを表示および変更する方法 (SQL Server Management Studio)」を参照してください。パブリケーションでピア ツー ピア トランザクション レプリケーションが有効な場合、テーブルはフィルタ選択できません。
注 |
---|
パブリケーションに対するサブスクリプションが初期化された後に、[パブリケーションのプロパティ - <Publication>] ダイアログ ボックスで静的行フィルタを追加、変更、または削除した場合は、変更を行った後で、新しいスナップショットを生成し、すべてのサブスクリプションを再初期化する必要があります。プロパティ変更の必要条件の詳細については、「パブリケーションおよびアーティクルのプロパティの変更」を参照してください。 |
静的行フィルタを定義するには
パブリケーションの新規作成ウィザードの [テーブル行のフィルタ選択] ページ、または [パブリケーションのプロパティ - <Publication>] ダイアログ ボックスの [行のフィルタ選択] ページで行う操作は、パブリケーションの種類によって異なります。
スナップショット パブリケーションまたはトランザクション パブリケーションの場合は、[追加] をクリックします。
マージ パブリケーションの場合は、[追加] をクリックしてから [フィルタの追加] をクリックします。
[フィルタの追加] ダイアログ ボックスで、ドロップダウン リスト ボックスからフィルタ選択するテーブルを選択します。
[フィルタ ステートメント] テキスト領域で、フィルタ ステートメントを作成します。テキスト領域に直接入力することも、[列] ボックスから列をドラッグ アンド ドロップすることもできます。
注 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
[OK] をクリックします。
[パブリケーションのプロパティ - <Publication>] ダイアログ ボックスが表示されている場合は、[OK] をクリックして保存し、ダイアログ ボックスを閉じます。
静的行フィルタを変更するには
パブリケーションの新規作成ウィザードの [テーブル行のフィルタ選択] ページ、または [パブリケーションのプロパティ - <Publication>] ダイアログ ボックスの [行のフィルタ選択] ページで、[フィルタ選択されたテーブル] ペイン内のフィルタを選択し、[編集] をクリックします。
[フィルタの編集] ダイアログ ボックスで、フィルタを変更します。
[OK] をクリックします。
静的行フィルタを削除するには
- パブリケーションの新規作成ウィザードの [テーブル行のフィルタ選択] ページ、または [パブリケーションのプロパティ - <Publication>] ダイアログ ボックスの [行のフィルタ選択] ページで、[フィルタ選択されたテーブル] ペイン内のフィルタを選択し、[削除] をクリックします。