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_table Nvarchar(400), 沒有預設值。

[ @subset_filterclause = ] 'subset_filterclause' 這是正在測試的篩選子句。 subset_filterclause為 Nvarchar(1000), 沒有預設值。

[ @has_dynamic_filters = ] has_dynamic_filters 如果篩選子句是參數化資料列篩選,則為 。 has_dynamic_filters 為 bit ,預設值為 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 。 這個預存程式可用來驗證篩選子句,再定義篩選的發行項。

權限

只有系統管理員 固定伺服器角色或 db_owner 固定資料庫角色的成員 才能執行 sp_check_subset_filter

另請參閱

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