篩選將基于表項目發(fā)布的數(shù)據(jù)。此存儲過程只能修改沒有訂閱的項目。此存儲過程在發(fā)布服務(wù)器的發(fā)布數(shù)據(jù)庫上執(zhí)行。
sp_articlefilter [ @publication = ] 'publication'
, [ @article = ] 'article'
[ , [ @filter_name = ] 'filter_name' ]
[ , [ @filter_clause = ] 'filter_clause']
[ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
[ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[@publication =] 'publication'
是包含該項目的發(fā)布名。publication 的數(shù)據(jù)類型為 sysname,沒有默認設(shè)置。
[@article = ]'article'
是項目名。article 的數(shù)據(jù)類型為 sysname,沒有默認設(shè)置。
[@filter_name =] 'filter_name'
是要從 filter_name 創(chuàng)建的篩選存儲過程名。filter_name 的數(shù)據(jù)類型為 nvarchar(386),默認設(shè)置為 NULL。
[@filter_clause =] 'filter_clause'
是定義水平篩選的 (WHERE) 限制子句。輸入該限制子句時,省略關(guān)鍵字 WHERE。filter_clause 的數(shù)據(jù)類型為 ntext,默認設(shè)置為 NULL。
[@force_invalidate_snapshot = ] force_invalidate_snapshot
確認此存儲過程采取的操作可能使現(xiàn)有快照無效。force_invalidate_snapshot 的數(shù)據(jù)類型為 bit,默認設(shè)置為 0。0 指定對項目的更改不會導(dǎo)致快照無效。如果存儲過程檢測到更改確實需要新快照,則會發(fā)生錯誤,且不會進行任何更改。而 1 指定對項目所做的更改可能導(dǎo)致快照無效,而且如果現(xiàn)有訂閱需要新的快照,則提供適當?shù)臋?quán)限,使現(xiàn)有快照被標記為廢棄并生成新快照。
[@force_reinit_subscription = ] force_reinit_subscription
確認此存儲過程所采取的操作可能要求重新初始化現(xiàn)有的訂閱。force_reinit_subscription 的數(shù)據(jù)類型為 bit,默認設(shè)置為 0。0 指定對項目的更改不會導(dǎo)致重新初始化訂閱。如果存儲過程檢測到更改需要重新初始化訂閱,則會發(fā)生錯誤,且不會進行任何更改。而 1 指定對項目的更改將導(dǎo)致重新初始化現(xiàn)有的訂閱,且提供使訂閱重新初始化發(fā)生的權(quán)限。
0(成功)或 1(失?。?/P>
sp_article_filter 用于快照復(fù)制和事務(wù)復(fù)制。
sp_articlefilter 創(chuàng)建篩選,在 sysarticles 表的 filter 列中插入篩選存儲過程的 ID,然后在 filter_clause 列中插入限制子句的文本。
若要創(chuàng)建帶水平篩選的項目,請不帶 filter 參數(shù)執(zhí)行 sp_addarticle。執(zhí)行 sp_articlefilter,并提供包括 filter_clause 在內(nèi)的所有參數(shù),然后執(zhí)行 sp_articleview,并提供包括相同的 filter_clause 在內(nèi)的所有參數(shù)。如果該篩選已存在,而且 sysarticles 中的 type 為 1(基于日志的項目),則刪除以前的篩選并創(chuàng)建新篩選。
如果未提供 filter_name 和 filter_clause,則刪除以前的篩選并將篩選 ID 設(shè)置為 0。
只有 sysadmin 固定服務(wù)器角色成員或 db_owner 固定數(shù)據(jù)庫角色成員才能執(zhí)行 sp_articlefilter。
相關(guān)文章