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 是 int,預設值是 NULL,它是一個 OUTPUT 參數。 當篩選子句是參數化資料列篩選器時,傳回 1 值。

結果集

資料行名稱

資料類型

說明

can_use_partition_groups

bit

指出發行集是否能夠使用預先計算的資料分割;其中 1 表示可以使用預先計算的資料分割;而 0 表示不能使用。

has_dynamic_filters

bit

指出所提供的篩選子句是否至少包含一個參數化資料列篩選器;其中 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 可以針對任何資料表來執行,即使資料表尚未發行也一樣。 在定義篩選的發行項之前,您可以使用這個預存程序,先驗證篩選子句。

權限

只有系統管理員 (sysadmin) 固定伺服器角色和 db_owner 固定資料庫角色的成員,才能夠執行 sp_check_subset_filter

請參閱

概念

使用預先計算的資料分割最佳化參數化篩選效能