sp_check_subset_filter (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 值。
傳回碼值
0 (成功) 或 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,表示有使用這個函數。 |
備註
sp_check_subset_filter 用於合併式複寫中。
sp_check_subset_filter 可以針對任何資料表來執行,即使資料表尚未發行也一樣。在定義篩選的發行項之前,您可以使用這個預存程序,先驗證篩選子句。
權限
只有系統管理員 (sysadmin) 固定伺服器角色和 db_owner 固定資料庫角色的成員,才能夠執行 sp_check_subset_filter。