sp_changepublication (Transact-SQL)

更新: 2006 年 12 月 12 日

變更發行集的屬性。這個預存程序執行於發行集資料庫的發行者端。

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

語法

sp_changepublication [ [ @publication = ] 'publication' ]
    [ , [ @property = ] 'property' ]
    [ , [ @value = ] 'value' ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]
    [ , [ @publisher = ] 'publisher' ]

引數

  • [ @publication = ] 'publication'
    這是發行集的名稱。publicationsysname,預設值是 NULL。
  • [ @property = ] 'property'
    這是要變更的發行集屬性。propertynvarchar(255)
  • [ @value = ] 'value'
    這是新的屬性值。valuenvarchar(255),預設值是 NULL。

    下表描述可變更的發行集屬性及這些屬性值的限制。

    屬性

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

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

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

    請參閱<備註>一節,以瞭解在變更時需要產生新快照集的屬性。

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

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

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

  • [ @publisher = ] 'publisher'
    指定非 SQL Server 發行者。publishersysname,預設值是 NULL。

    ms188413.note(zh-tw,SQL.90).gif附註:
    當在 SQL Server 發行者上變更發行項屬性時,不應使用 publisher

傳回碼值

0 (成功) 或 1 (失敗)

備註

sp_changepublication 用於快照式複寫和交易式複寫中。

變更下列中的任何屬性都需要產生新的快照集,但您必須指定 1 值給 force_invalidate_snapshot 參數。

  • alt_snapshot_folder
  • compress_snapshot
  • enabled_for_het_sub
  • ftp_address
  • ftp_login
  • ftp_password
  • ftp_port
  • ftp_subdirectory
  • post_snapshot_script
  • pre_snapshot_script
  • snapshot_in_defaultfolder
  • sync_mode

若要利用 publish_to_active_directory 參數來列出 Active Directory 中的發行集物件,必須已在 Active Directory 中建立 SQL Server 物件。

權限

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

範例

DECLARE @publication AS sysname
SET @publication = N'AdvWorksProductTran' 

-- Turn off DDL replication for the transactional publication.
USE [AdventureWorks]
EXEC sp_changepublication 
  @publication = @publication, 
  @property = N'replicate_ddl', 
  @value = 0
GO

請參閱

參考

sp_addpublication (Transact-SQL)
sp_droppublication (Transact-SQL)
sp_helppublication (Transact-SQL)
複寫預存程序 (Transact-SQL)

其他資源

How to: View and Modify Publication Properties (Replication Transact-SQL Programming)
變更發行集與發行項屬性

說明及資訊

取得 SQL Server 2005 協助

變更歷程記錄

版本 歷程記錄

2006 年 12 月 12 日

新增內容:
  • 新增有關 sync_method 屬性新值的資訊。