共用方式為


sp_helppublication (Transact-SQL)

傳回有關發行集的資訊。對於 Microsoft SQL Server 發行集,這個預存程序執行於發行集資料庫中的發行者端。如果是 Oracle 發行集,這個預存程序執行於任何資料庫中的散發者端。

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

語法

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

引數

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

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

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

    [!附註]

    當要求 SQL Server 發行者的發行集資訊時,不應指定 publisher。

結果集

資料行名稱

資料類型

描述

pubid

int

發行集的識別碼。

name

sysname

發行集的名稱。

restricted

int

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

status

tinyint

發行集的目前狀態。

0 = 非使用中。

1 = 使用中。

task

 

使用這個項目的目的,是為了與舊版相容。

replication frequency

tinyint

複寫頻率的類型:

0 = 交易式

1 = 快照式

synchronization method

tinyint

同步模式:

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

1 = 字元大量複製

3 = Concurrent,表示使用原生大量複製 (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

binary(16)

排程工作識別碼。

retention

int

給定發行集的變更儲存量 (以小時為單位)。

has subscription

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 檔案位置的指標。在訂閱者端套用快照集時,散發代理程式會在執行任何複寫的物件指令碼之前,先執行前快照集 (pre-snapshot) 指令碼。

post_snapshot_script

nvarchar(255)

指定 .sql 檔案位置的指標。在初始同步處理期間,散發代理程式會先套用所有其他複寫的物件指令碼和資料,然後才執行後快照集 (post-snapshot) 指令碼。

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 來儲存交易。

附註附註
已不再支援使用 Message Queuing。

backward_comp_level

 

資料庫相容性層級,它可以是下列項目之一:

10 = Microsoft SQL Server 7.0

20 = SQL Server 7.0 Service Pack 1

30 = SQL Server 7.0 Service Pack 2

35 = SQL Server 7.0 Service Pack 3

40 = Microsoft SQL Server 2000

50 = SQL Server 2000 Service Pack 1

60 = SQL Server 2000 Service Pack 3

90 = Microsoft SQL Server 2005

100 = Microsoft SQL Server 2008

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 表示發行集支援點對點複寫。如需詳細資訊,請參閱<點對點交易式複寫>。

publish_local_changes_only

int

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

enabled_for_het_sub

int

指定發行集是否支援非 SQL Server 訂閱者。1 值表示支援非 SQL Server 訂閱者。0 值表示僅支援 SQL Server 訂閱者。如需詳細資訊,請參閱<非 SQL Server 訂閱者>。

enabled_for_p2p_conflictdetection

int

指定散發代理程式是否會偵測啟用點對點複寫之發行集的衝突。值為 1 表示會偵測衝突。如需詳細資訊,請參閱<點對點複寫中的衝突偵測>。

originator_id

int

針對點對點拓撲中的節點指定識別碼。如果 enabled_for_p2p_conflictdetection 設定為 1,這個識別碼就會用於衝突偵測。如需已經使用的識別碼清單,請查詢 Mspeer_originatorid_history 系統資料表。

p2p_continue_onconflict

int

指定散發代理程式是否會在偵測到衝突時繼續處理變更。1 值表示此代理程式會繼續處理變更。

警告注意事項注意
我們建議您使用預設值 0。當這個選項設定為 1 時,散發代理程式會套用具有最高訂閱者識別碼之節點的衝突資料列,藉以嘗試聚合拓撲中的資料。但是,這個方法無法保證聚合。您應該確定在偵測到衝突之後,拓撲是一致的。如需詳細資訊,請參閱<點對點複寫中的衝突偵測>中的「處理衝突」。

alllow_partition_switch

int

指定 ALTER TABLE…SWITCH 陳述式是否可以針對發行的資料庫來執行。如需詳細資訊,請參閱<複寫資料分割資料表及索引>。

replicate_partition_switch

int

指定針對發行資料庫執行的 ALTER TABLE…SWITCH 陳述式是否應該複寫到訂閱者。只有當 allow_partition_switch 設定為 1 時,這個選項才有效。

傳回碼值

0 (成功) 或 1 (失敗)

備註

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

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

範例

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

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

權限

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

如果是非 SQL Server 發行者,只有散發者端的系統管理員 (sysadmin) 固定伺服器角色成員、散發資料庫的 db_owner 固定資料庫角色成員,或 PAL 中的使用者,才能夠執行 sp_helppublication。