マージ アーティクルのパラメータ化された行フィルタを定義および変更する方法 (SQL Server Management Studio)
パブリケーションの新規作成ウィザードの [テーブル行のフィルタ選択] ページ、または [パブリケーションのプロパティ - <Publication>] ダイアログ ボックスの [行のフィルタ選択] ページで、パラメータ化された行フィルタを定義、変更、または削除します。このウィザードの使用とダイアログ ボックスへのアクセスの詳細については、「パブリケーションを作成してアーティクルを定義する方法 (SQL Server Management Studio)」および「パブリケーションとアーティクルのプロパティを表示および変更する方法 (SQL Server Management Studio)」を参照してください。
注 |
---|
パブリケーションに対するサブスクリプションを初期化した後に、[パブリケーションのプロパティ - <Publication>] ダイアログ ボックスでパラメータ化された行フィルタを追加、変更、または削除した場合は、変更を行った後で、新しいスナップショットを生成し、すべてのサブスクリプションを再初期化する必要があります。プロパティ変更の必要条件の詳細については、「パブリケーションおよびアーティクルのプロパティの変更」を参照してください。 |
パラメータ化された行フィルタを定義するには
パブリケーションの新規作成ウィザードの [テーブル行のフィルタ選択] ページ、または [パブリケーションのプロパティ - <Publication>] ダイアログ ボックスの [行のフィルタ選択] ページで、[追加] をクリックし、次に [フィルタの追加] をクリックします。
[フィルタの追加] ダイアログ ボックスで、ドロップダウン リスト ボックスからフィルタ選択するテーブルを選択します。
[フィルタ ステートメント] テキスト ボックスで、フィルタ ステートメントを作成します。テキスト領域に直接入力することも、[列] ボックスから列をドラッグ アンド ドロップすることもできます。
[フィルタ ステートメント] テキスト領域には、次の形式の既定のテキストが含まれています。
SELECT <published_columns> FROM [tableowner].[tablename] WHERE
既定のテキストは変更できません。標準の SQL 構文を使用して WHERE キーワードの後にフィルタ句を入力してください。パラメータ化されたフィルタには、システム関数 HOST_NAME() および SUSER_SNAME() の呼び出し、あるいは、これらの関数のいずれかまたは両方を参照するユーザー定義関数の呼び出しが含まれています。パラメータ化された行フィルタの完全なフィルタ句の例を次に示します。
SELECT <published_columns> FROM [HumanResources].[Employee] WHERE LoginID = SUSER_SNAME()
WHERE 句には、2 つの部分で構成されている名前を使用する必要があります。3 つまたは 4 つの部分で構成されている名前の使用はサポートされていません。
重要 LEFT([MyColumn]) = SUSER_SNAME() のように、パラメータ化された行フィルタの句で列名に関数を適用するとパフォーマンスが悪化するため、使用しないことをお勧めします。フィルタ句で HOST_NAME を使用して HOST_NAME の値を上書きする場合、CONVERT によるデータ型の変更が必要になる場合があります。このケースにおける推奨事項の詳細については、パラメーター化された行フィルター の「HOST_NAME() 値の上書き」を参照してください。
複数のサブスクライバ間でのデータの共有方法に一致するオプションを選択します。
[このテーブルの 1 行を複数のサブスクリプションに移動する]
[このテーブルの 1 行を 1 つのサブスクリプションのみに移動する]
[このテーブルの 1 行を 1 つのサブスクリプションのみに移動する] を選択すると、マージ レプリケーションは、格納および処理するメタデータを減らすことにより、パフォーマンスを最適化できます。ただし、データのパーティション分割によって、1 つの行が複数のサブスクライバにレプリケートされないことを確認する必要があります。詳細については、「パラメーター化された行フィルター」の「[パーティションのオプション] の設定」を参照してください。
[OK] をクリックします。
[パブリケーションのプロパティ - <Publication>] ダイアログ ボックスが表示されている場合は、[OK] をクリックして保存し、ダイアログ ボックスを閉じます。
パラメータ化された行フィルタを変更するには
パブリケーションの新規作成ウィザードの [テーブル行のフィルタ選択] ページ、または [パブリケーションのプロパティ - <Publication>] の [行のフィルタ選択] ページで、[フィルタ選択されたテーブル] ペイン内のフィルタを選択し、[編集] をクリックします。
[フィルタの編集] ダイアログ ボックスで、フィルタを変更します。
[OK] をクリックします。
パラメータ化された行フィルタを削除するには
- パブリケーションの新規作成ウィザードの [テーブル行のフィルタ選択] ページ、または [パブリケーションのプロパティ - <Publication>] の [行のフィルタ選択] ページで、[フィルタ選択されたテーブル] ペイン内のフィルタを選択し、[削除] をクリックします。