次の方法で共有


sp_check_subset_filter (Transact-SQL)

テーブルに対してフィルター句を確認して、フィルター句がテーブルに対して有効であるかどうかを判定するのに使用します。 このストアド プロシージャは、フィルターが事前計算済みパーティションでの使用条件を満たすかどうかも含め、指定されたフィルターに関する情報を返します。 このストアド プロシージャは、パブリッシャー側でパブリケーションを含むデータベースについて実行されます。

トピック リンク アイコン Transact-SQL 構文表記規則

構文

sp_check_subset_filter [ @filtered_table = ] 'filtered_table' 
        , [ @subset_filterclause = ] 'subset_filterclause'
    [ , [ @has_dynamic_filters = ] has_dynamic_filters OUTPUT ]

引数

  • [ @filtered_table= ] 'filtered_table'
    フィルター済みテーブルの名前を指定します。 filtered_table のデータ型は nvarchar(400) で、既定値はありません。

  • [ @subset_filterclause = ] 'subset_filterclause'
    テストの対象となるフィルター句を指定します。 subset_filterclause のデータ型は nvarchar(1000) で、既定値はありません。

  • [ @has_dynamic_filters= ] has_dynamic_filters
    フィルター句がパラメーター化された行フィルターであるかどうかを示します。 has_dynamic_filters のデータ型は bit で、既定値は NULL です。これは出力パラメーターです。 フィルター句がパラメーター化された行フィルターである場合は 1 の値を返します。

結果セット

列名

データ型

説明

can_use_partition_groups

bit

パブリケーションが事前計算済みパーティションの使用条件を満たすかどうかを示します。1 の場合、事前計算済みパーティションを使用することができ、0 の場合は使用できないことを示します。

has_dynamic_filters

bit

指定されたフィルター句に少なくとも 1 つのパラメーター化された行フィルターが含まれるかどうかを示します。1 はパラメーター化された行フィルターが使用されていることを示し、0 はそのような関数が使用されていないことを示します。

dynamic_filters_function_list

nvarchar(500)

アーティクルを動的にフィルター選択するフィルター句内の関数の一覧です。各関数は、セミコロンで区切られます。

uses_host_name

bit

HOST_NAME() 関数がフィルター句で使用されているかどうかを示します。1 はこの関数が存在することを示します。

uses_suser_sname

bit

SUSER_SNAME() 関数がフィルター句で使用されるかどうかを示します。1 はこの関数が使用されることを示します。

戻り値

成功した場合は 0 を、失敗した場合は 1 をそれぞれ返します。

説明

sp_check_subset_filter はマージ レプリケーションで使用します。

sp_check_subset_filter は、テーブルがパブリッシュされていない場合でも、任意のテーブルに対して実行できます。 このストアド プロシージャを使用して、フィルター選択されたアーティクルを定義する前にフィルター句を検証することができます。

権限

sp_check_subset_filter を実行できるのは、固定サーバー ロール sysadmin または固定データベース ロール db_owner のメンバーだけです。

関連項目

概念

事前計算済みパーティションによるパラメーター化されたフィルターのパフォーマンス最適化