sp_helppublication (Transact-SQL)

適用於:SQL ServerAzure SQL 受控執行個體

傳回發行集的相關資訊。 對於 Microsoft SQL Server 發行集,這個預存程式會在發行集資料庫的發行者端執行。 針對 Oracle 發行集,此預存程式會在任何資料庫的散發者端執行。

Transact-SQL 語法慣例

語法

  
sp_helppublication [ [ @publication = ] 'publication' ]  
    [ , [ @found=] found OUTPUT]  
    [ , [ @publisher = ] 'publisher' ]  

引數

[ @publication = ] 'publication' 這是要檢視的發行集名稱。 publication 是 sysname,預設值為 % ,它會傳回所有發行集的相關資訊。

[ @found = ] 'found' OUTPUT 這是表示傳回資料列的旗標。 找到 int 和 OUTPUT 參數,預設值為 23456 1 表示找到發行集。 0 表示找不到發行集。

[ @publisher = ] 'publisher' 指定非 SQL Server 發行者。 publisher 是 sysname,預設值為 Null。

注意

從 SQL Server 發行者要求發行集資訊時,不應該指定 publisher

結果集

資料行名稱 資料類型 描述
pubid int 發行集的識別碼。
NAME sysname 發行集的名稱。
restricted int 僅供參考之用。 不支援。 我們無法保證未來的相容性。
status tinyint 發行集的目前狀態。

0 = 非使用中。

1 = 作用中。
工作 用於回溯相容性。
複寫頻率 tinyint 複寫頻率的類型:

0 = 交易式

1 = 快照集
同步處理方法 tinyint 同步處理模式:

0 = 原生大量複製程式 ( bcp 公用程式)

1 = 字元大量複製

3 = 並行,這表示使用原生大量複製 ( bcp 公用程式),但在快照集期間不會鎖定資料表

4 = Concurrent_c,這表示使用字元大量複製,但在快照集期間不會鎖定資料表
description nvarchar(255) 發行集的選擇性描述。
immediate_sync bit 每次執行快照集代理程式時,都會建立或重新建立同步處理檔案。
enabled_for_internet bit 發行集的同步處理檔案是否透過檔案傳輸通訊協定 (FTP) 和其他服務向網際網路公開。
allow_push bit 發行集是否允許發送訂閱。
allow_pull bit 發行集是否允許提取訂閱。
allow_anonymous bit 發行集是否允許匿名訂閱。
independent_agent bit 此發行集是否有獨立散發代理程式。
immediate_sync_ready bit 快照集代理程式是否產生可供新訂用帳戶使用的快照集。 只有當發行集設定為永遠有快照集可供新的或重新初始化的訂閱使用時,才會定義此參數。
allow_sync_tran bit 發行集是否允許立即更新訂閱。
autogen_sync_procs bit 是否要自動產生預存程式以支援立即更新訂閱。
snapshot_jobid 二進位(16) 排程的工作識別碼。
retention int 要儲存給指定出版物的變更量,以小時為單位。
具有訂用帳戶 bit 如果發行集有作用中的訂閱,則為 。 1 表示發行集具有作用中的訂閱,而 0 表示發行集沒有訂閱。
allow_queued_tran bit 指定是否停用訂閱者端的變更佇列,直到可以在發行者端套用變更為止。 如果 為 0 ,訂閱者端的變更不會排入佇列。
snapshot_in_defaultfolder bit 指定快照集檔案是否儲存在預設資料夾中。 如果 為 0 ,快照集檔案已儲存在alternate_snapshot_folder 指定的 替代位置。 如果 為 1 ,可以在預設資料夾中找到快照集檔案。
alt_snapshot_folder nvarchar(255) 指定快照集替代資料夾的位置。
pre_snapshot_script nvarchar(255) 指定 .sql 檔案位置的 指標。 散發代理程式會在訂閱者端套用快照集時,先執行預先快照集腳本,再執行任何複寫的物件腳本。
post_snapshot_script nvarchar(255) 指定 .sql 檔案位置的 指標。 散發代理程式會在初始同步處理期間套用所有其他複寫的物件腳本和資料之後,執行快照集後腳本。
compress_snapshot bit 指定寫入alt_snapshot_folder 位置的 快照集會壓縮成 Microsoft CAB 格式。 0 指定不會壓縮快照集。
ftp_address sysname 散發者 FTP 服務的網路位址。 指定發行集快照集檔案的位置,供訂閱者的散發代理程式或合併代理程式取用。
ftp_port int 散發者的 FTP 服務埠號碼。
ftp_subdirectory nvarchar(255) 指定當發行集支援使用 FTP 傳播快照集時,散發代理程式或訂閱者的合併代理程式可以挑選快照集檔案的位置。
ftp_login sysname 用來連線到 FTP 服務的使用者名稱。
allow_dts bit 指定發行集允許資料轉換。 0 指定不允許 DTS 轉換。
allow_subscription_copy bit 指定是否已啟用複製訂閱此發行集的訂閱資料庫的能力。 0 表示不允許複製。
centralized_conflicts bit 指定衝突記錄是否儲存在發行者上:

0 = 衝突記錄會同時儲存在發行者和造成衝突的訂閱者端。

1 = 衝突記錄會儲存在發行者端。
conflict_retention int 指定以天為單位的衝突保留期間。
conflict_policy int 指定使用佇列更新訂閱者選項時所遵循的衝突解決原則。 可以是下列值之一:

1 = 發行者贏得衝突。

2 = 訂閱者贏得衝突。

3 = 重新初始化訂閱。
queue_type 指定使用哪種類型的佇列。 可以是下列值之一:

msmq = 使用 Microsoft Message Queuing 來儲存交易。

sql = 使用 SQL Server 來儲存交易。

注意:已停止訊息佇列的支援。
backward_comp_level 資料庫相容性層級,可以是下列其中一項:

90 = Microsoft SQL Server 2005 (9.x)

100 = Microsoft SQL Server 2008 (10.0.x)
publish_to_AD bit 指定發行集是否在 Microsoft Active Directory 中發行。 值為 1 表示已發行,且值為 0 表示它未發佈。
allow_initialize_from_backup bit 指出訂閱者是否可以從備份初始化這個發行集的訂閱,而不是初始快照集。 1 表示訂閱可以從備份初始化, 0 表示訂閱無法初始化。 如需詳細資訊,請參閱 在沒有快照 集的情況下初始化交易式訂閱,而不使用快照集的交易式訂閱者。
replicate_ddl int 指出發行集是否支援架構複寫。 1 表示在發行者端執行的資料定義語言 (DDL) 語句會複寫, 0 表示不會複寫 DDL 語句。 如需詳細資訊,請參閱對發行集資料庫進行結構描述變更
enabled_for_p2p int 如果發行集可用於點對點複寫拓撲中。 1 表示發行集支援點對點複寫。 如需相關資訊,請參閱 Peer-to-Peer Transactional Replication
publish_local_changes_only int 僅供參考之用。 不支援。 我們無法保證未來的相容性。
enabled_for_het_sub int 指定發行集是否支援非 SQL Server 訂閱者。 值為 1 表示支援非 SQL Server 訂閱者。 值為 0 表示只支援 SQL Server 訂閱者。 如需詳細資訊,請參閱 Non-SQL Server Subscribers
enabled_for_p2p_conflictdetection int 指定散發代理程式是否偵測到針對點對點複寫啟用之發行集的衝突。 值為 1 表示偵測到衝突。 如需相關資訊,請參閱 Conflict Detection in Peer-to-Peer Replication
originator_id int 針對點對點拓撲中的節點指定識別碼。 如果 enabled_for_p2p_conflictdetection 設為 1 ,此識別碼會用於衝突偵測。 如需已經使用的識別碼清單,請查詢 Mspeer_originatorid_history 系統資料表。
p2p_continue_onconflict int 指定偵測到衝突時,散發代理程式是否繼續處理變更。 值為 1 表示代理程式會繼續處理變更。

** 注意 ** 我們建議您使用預設值 0 。 當此選項設定為 1 時,散發代理程式會從具有最高原始程式識別碼的節點套用衝突資料列,嘗試聚合拓撲中的資料。 此方法不保證聚合。 您應該確定拓撲在偵測到衝突之後是一致的。 如需詳細資訊,請參閱< Conflict Detection in Peer-to-Peer Replication>中的「處理衝突」。
allow_partition_switch int 指定 ALTER TABLE...SWITCH 語句可以針對已發佈的資料庫執行。 如需詳細資訊,請參閱複寫資料分割資料表及索引
replicate_partition_switch int 指定 ALTER TABLE...針對已發行資料庫的 SWITCH 語句應該複寫至訂閱者。 只有在allow_partition_switch 設為 1 ,此選項才有效。
enabled_for_p2p_lastwriter_conflictdetection int 從 SQL Server 2019 (15.x) CU 13 開始,指定散發代理程式是否偵測 到針對點對點複寫啟用之發行集的最後 寫入器衝突。 值為 1 表示偵測到最後一個寫入器衝突。

傳回碼值

0 (成功) 或 1 (失敗)

備註

快照式和異動複寫會使用sp_helppublication。

sp_helppublication會傳回執行此程式之使用者所擁有的所有發行集資訊。

範例

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

USE [AdventureWorks2022]
EXEC sp_helppublication @publication = @myTranPub
GO

權限

只有發行者端系統管理員固定伺服器角色的成員,或發行集資料庫上db_owner固定資料庫角色的成員,或是發行集存取清單 (PAL) 中的使用者,才能執行sp_helppublication。

對於非 SQL Server 發行者,只有散發者端 sysadmin 固定伺服器角色的成員,或 PAL 中散發資料庫或 PAL 中使用者db_owner固定資料庫角色的成員,才能執行sp_helppublication。

另請參閱

檢視和修改發行集屬性
sp_addpublication (Transact-SQL)
sp_changepublication (Transact-SQL)
sp_droppublication (Transact-SQL)
複寫預存程式 (Transact-SQL)