sp_check_join_filter (Transact-SQL)
用來驗證兩個資料表之間的聯結篩選,以判斷聯結篩選子句是否有效。 這個預存程序也會傳回有關所提供之聯結篩選的資訊,包括它是否能夠搭配使用給定資料表之預先計算的資料分割。 這個預存程序執行於發行集的發行者端。 如需詳細資訊,請參閱<使用預先計算的資料分割最佳化參數化篩選效能>。
語法
sp_check_join_filter [ @filtered_table = ] 'filtered_table'
, [@join_table = ] 'join_table'
, [ @join_filterclause = ] 'join_filterclause'
引數
[ @filtered_table= ] 'filtered_table'
這是篩選的資料表名稱。 filtered_table 是 nvarchar(400),沒有預設值。[ @join_table= ] 'join_table'
這是聯結到 filtered_table 的資料表名稱。 join_table 是 nvarchar(400),沒有預設值。[ @join_filterclause = ] 'join_filterclause'
這是正在測試的聯結篩選子句。 join_filterclause 是 nvarchar(1000),沒有預設值。
結果集
資料行名稱 |
資料類型 |
說明 |
---|---|---|
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_join_filter 用於合併式複寫中。
sp_check_join_filter 可以對任何相關資料表執行,即使它們尚未發行也一樣。 在定義兩個發行項之間的聯結篩選之前,您可以使用這個預存程序,先驗證聯結篩選子句。
權限
只有系統管理員 (sysadmin) 固定伺服器角色和 db_owner 固定資料庫角色的成員,才能夠執行 sp_check_join_filter。