分享方式:


sp_check_subset_filter (Transact-SQL)

適用於:SQL Server Azure SQL 受控執行個體

針對任何數據表檢查篩選子句,以判斷篩選子句是否對數據表有效。 此預存程式會傳回所提供篩選的相關信息,包括篩選條件是否符合與預先計算數據分割搭配使用。 這個預存程式是在包含發行集之資料庫的發行者端執行。

Transact-SQL 語法慣例

語法

sp_check_subset_filter
    [ @filtered_table = ] N'filtered_table'
    , [ @subset_filterclause = ] N'subset_filterclause'
    [ , [ @has_dynamic_filters = ] has_dynamic_filters OUTPUT ]
    [ , [ @dynamic_filters_function_list = ] N'dynamic_filters_function_list' OUTPUT ]
[ ; ]

引數

[ @filtered_table = ] N'filtered_table'

篩選數據表的名稱。 @filtered_table為 nvarchar(400),沒有預設值。

[ @subset_filterclause = ] N'subset_filterclause'

要測試的篩選子句。 @subset_filterclause為 nvarchar(1000),沒有預設值。

[ @has_dynamic_filters = ] has_dynamic_filters OUTPUT

指定篩選子句是否為參數化數據列篩選。 @has_dynamic_filters是 bit 類型的 OUTPUT 參數。 當 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 如果篩選子句中使用HOST_NAME函式,其中 1 表示此函式存在。
uses_suser_sname bit 如果篩選子句中使用SUSER_SNAME函式,其中 1 表示此函式存在。

[ @dynamic_filters_function_list = ] N'dynamic_filters_function_list' OUTPUT

僅供參考之用。 不支援。 我們無法保證未來的相容性。

傳回碼值

0 (成功) 或 1 (失敗)。

備註

sp_check_subset_filter 用於合併式複寫。

sp_check_subset_filter 即使數據表未發佈,也可以針對任何數據表執行。 這個預存程式可用來驗證篩選子句,再定義篩選的發行項。

權限

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