sp_changemergefilter (Transact-SQL)

變更部分合併篩選屬性。這個預存程序執行於發行集資料庫的發行者端。

主題連結圖示Transact-SQL 語法慣例

語法

sp_changemergefilter [ @publication= ] 'publication'
        , [ @article= ] 'article'
        , [ @filtername= ] 'filtername'
        , [ @property= ] 'property'
        , [ @value= ] 'value'
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]

引數

  • [@publication= ] 'publication'
    這是發行集的名稱。publication 是 sysname,沒有預設值。

  • [@article= ] 'article'
    這是發行項的名稱。article 是 sysname,沒有預設值。

  • [@filtername= ] 'filtername'
    這是篩選的目前名稱。filtername 是 sysname,沒有預設值。

  • [@property= ] 'property'
    這是要變更的屬性名稱。property 是 sysname,沒有預設值。

  • [@value=] 'value'
    這是指定屬性的新值。value 是 nvarchar(1000),沒有預設值

    下表描述發行項的屬性及這些屬性的值。

    屬性

    描述

    filter_type

    1

    聯結篩選。

    支援 SQL Server Compact 3.5 SP2 訂閱者需要這個選項。

     

    2

    邏輯記錄關聯性。

     

    3

    聯結篩選也是一項邏輯記錄關聯性。

    filtername

     

    篩選的名稱。

    join_articlename

     

    聯結發行項的名稱。

    join_filterclause

     

    篩選子句。

    join_unique_key

    true

    聯結作用於唯一索引鍵

     

    false

    聯結不作用於唯一索引鍵

  • [@force_invalidate_snapshot = ] force_invalidate_snapshot
    認可這個預存程序所採取的動作可能會導致現有的快照集無效。force_invalidate_snapshot 是 bit,預設值是 0

    0 指定合併發行項的變更不會使快照集失效。如果預存程序偵測到變更需要新的快照集,就會發生錯誤,且不會進行任何變更。

    1 表示合併發行項的變更可能使快照集失效,如果有現有的訂閱需要新的快照集,便提供要標示為已棄用之現有快照集的權限,此時會產生新的快照集。

  • [@force_reinit_subscription = ] force_reinit_subscription
    認可這個預存程序所採取的動作可能需要重新初始化現有的訂閱。force_reinit_subscription 是 bit,預設值是 0

    0 指定合併發行項的變更不會使訂閱重新初始化。如果預存程序偵測到變更需要重新初始化現有的訂閱,就會發生錯誤,且不會進行任何變更。

    1 表示合併發行項的變更會使現有的訂閱重新初始化,且會提供將發生之訂閱重新初始化的權限。

傳回碼值

0 (成功) 或 1 (失敗)

備註

sp_changemergefilter 用於合併式複寫中。

如果快照集存在的話,變更合併發行項的篩選需要重新建立快照集。您可以將 @force_invalidate_snapshot 設為 1 來執行這個動作。另外,如果有這個發行項的訂閱,也必須重新初始化訂閱。這是藉由將 @force_reinit_subscription 設為 1 來完成。

若要使用邏輯記錄,發行集和發行項必須符合許多需求。如需詳細資訊,請參閱<使用邏輯記錄分組相關資料列的變更>。

權限

只有系統管理員 (sysadmin) 固定伺服器角色或 db_owner 固定資料庫角色的成員,才能夠執行 sp_changemergefilter