sp_check_subset_filter (Transact-SQL)

适用于:SQL ServerAzure 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_tablenvarchar (400) ,没有默认值。

[ @subset_filterclause = ] 'subset_filterclause' 正在测试的筛选器子句。 subset_filterclausenvarchar (1000) ,没有默认值。

[ @has_dynamic_filters = ] has_dynamic_filters 如果 filter 子句是参数化行筛选器,则为 。 has_dynamic_filters,默认值为 NULL,是输出参数。 当 filter 子句是参数化行筛选器时,返回值 1

结果集

列名称 数据类型 说明
can_use_partition_groups bit 如果发布有资格使用预计算分区,则为 ;其中 1 表示可以使用预计算分区, 0 表示无法使用它们。
has_dynamic_filters bit 如果提供的筛选器子句至少包含一个参数化行筛选器,则为 ;其中 1 表示使用参数化行筛选器, 0 表示不使用此类函数。
dynamic_filters_function_list nvarchar(500) 筛选子句中动态筛选项目的函数的列表,其中,以分号分隔每个函数。
uses_host_name bit 如果在 filter 子句中使用 HOST_NAME () 函数,其中 1 表示存在此函数。
uses_suser_sname bit 如果在 filter 子句中使用 SUSER_SNAME () 函数,其中 1 表示存在此函数。

返回代码值

0 (成功) 或 1 (失败)

备注

sp_check_subset_filter 用于合并复制。

即使表未发布,也可以针对任何表执行sp_check_subset_filter。 在定义筛选项目之前,此存储过程可以用来验证筛选子句。

权限

只有 sysadmin 固定服务器角色或 db_owner 固定数据库角色的成员才能执行 sp_check_subset_filter

另请参阅

使用预计算分区优化参数化筛选器的性能