sp_helpmergepublication (Transact-SQL)

傳回有關合併式發行集的資訊。 這個預存程序執行於發行集資料庫的發行者端。

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

語法

sp_helpmergepublication [ [ @publication = ] 'publication' ]
    [ , [ @found = ] 'found' OUTPUT ]
    [ , [ @publication_id = ] 'publication_id' OUTPUT ]
    [ , [ @reserved = ] 'reserved' ]
    [ , [ @publisher = ] 'publisher' ]
    [ , [ @publisher_db = ] 'publisher_db' ]

引數

  • [ @publication**=** ] 'publication'
    發行集的名稱。 publication是 sysname,預設值是 %,可傳回目前資料庫中所有合併式發行集的相關資訊。

  • [ @found**=** ] 'found' OUTPUT
    這是指示傳回資料列的旗標。 found 是 int,它是一個 OUTPUT 參數,預設值是 NULL。 1 表示找到發行集。 0 表示找不到發行集。

  • [ @publication\_id**=**\] **'**publication_id' OUTPUT
    這是發行集識別碼。 publication_id 是 uniqueidentifier,它是一個 OUTPUT 參數,預設值是 NULL。

  • [ @reserved**=**\] 'reserved'
    僅供參考之用。不支援。我們無法保證未來的相容性。 reserved 是 nvarchar(20),預設值是 NULL。

  • [ @publisher**=** ] 'publisher'
    發行者的名稱。 publisher 是 sysname,預設值是 NULL。

  • [@publisher_db**=** ] 'publisher_db'
    發行集資料庫的名稱。 publisher_db 是 sysname,預設值是 NULL。

結果集

資料行名稱

資料類型

說明

id

int

結果集清單中的發行集循序排列順序。

name

sysname

發行集的名稱。

description

nvarchar(255)

發行集的描述。

status

tinyint

指示發行集資料的可用時機。

retention

int

儲存發行集中的發行項變更相關中繼資料時,所需的時間。 這段時間的單位可以是天、週、月或年。 如需有關單位的詳細資訊,請參閱 retention_period_unit 資料行。

sync_mode

tinyint

這個發行集的同步處理模式:

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

1 = 字元大量複製

allow_push

int

判斷是否可以針對給定發行集建立發送訂閱。 0 表示不允許發送訂閱。

allow_pull

int

判斷是否可以針對給定發行集建立提取訂閱。 0 表示不允許提取訂閱。

allow_anonymous

int

判斷是否可以針對給定發行集建立匿名訂閱。 0 表示不允許匿名訂閱。

centralized_conflicts

int

判斷是否將衝突記錄儲存在給定的發行者上:

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

1 = 所有衝突記錄都儲存在發行者端。

priority

float(8)

回送訂閱的優先權。

snapshot_ready

tinyint

指示這個發行集的快照集是否已備妥:

0 = 快照集已備妥。

1 = 快照集未備妥。

publication_type

int

發行集的類型:

0 = 快照式。

1 = 交易式。

2 = 合併式。

pubid

uniqueidentifier

這個發行集的唯一識別碼。

snapshot_jobid

binary(16)

快照集代理程式的作業識別碼。 若要取得 sysjobs 系統資料表中的快照集作業項目,您必須將這個十六進位值轉換成 uniqueidentifier。

enabled_for_internet

int

判斷是否啟用發行集的網際網路功能。 如果是 1,發行集的同步處理檔案會放在 C:\Program Files\Microsoft SQL Server\MSSQL\Repldata\Ftp 目錄中。 使用者必須建立檔案傳輸通訊協定 (FTP) 目錄。 如果是 0,便不會啟用發行集的網際網路存取功能。

dynamic_filter

int

指示是否要使用參數化資料列篩選器。 0 表示不會使用參數化資料列篩選器。

has_subscription

bit

指示發行集是否有任何訂閱。 0 表示這個發行集目前沒有任何訂閱。

snapshot_in_default_folder

bit

指定是否將快照集檔案儲存在預設資料夾中。

如果是 1,便可以在預設資料夾中找到快照集檔案。

如果為 0,表示快照集檔案會儲存在 alt_snapshot_folder 所指定的替代位置中。 替代位置可以在另一部伺服器、網路磁碟機或抽取式媒體 (如 CD-ROM 或抽取式磁碟) 中。 另外,您也可以將快照集檔案儲存在 FTP 站台中,供訂閱者以後擷取它們。

[!附註]

這個參數可以是 true,且在 alt_snapshot_folder 參數中仍有位置。 這個組合會指定將快照集檔案同時儲存在預設位置和替代位置中。

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 格式。

ftp_address

sysname

這是散發者之 FTP 服務的網路位址。 指定發行集快照集檔案所在的位置,以便合併代理程式能夠加以收取。

ftp_port

int

這是散發者的 FTP 服務通訊埠編號。 ftp_port 的預設值為 21。 指定發行集快照集檔案所在的位置,以便合併代理程式能夠加以收取。

ftp_subdirectory

nvarchar(255)

指定當利用 FTP 來傳遞快照集時,合併代理程式能夠從中收取快照集檔案的位置。

ftp_login

sysname

這是用於連接到 FTP 服務的使用者名稱。

conflict_retention

int

指定衝突的保留期限 (以天為單位)。 過了指定天數之後,便從衝突資料表中清除衝突資料列。

keep_partition_changes

int

指定這個發行集是否進行最佳化的同步處理。 keep_partition_changes 的預設值為 0。 0 的值表示同步處理未最佳化,而且當資料分割的資料有了改變時,會驗證傳給所有訂閱者的資料分割。

1 表示將同步處理最佳化,只有已變更之資料分割中之資料列的訂閱者會受到影響。

[!附註]

依預設,合併式發行集會使用預先計算的資料分割,以取得高於這個選項的最佳化程度。 如需詳細資訊,請參閱<參數化資料列篩選器>和<使用預先計算的資料分割最佳化參數化篩選效能>。

allow_subscription_copy

int

指定是否已啟用複製訂閱這個發行集之訂閱資料庫的能力。 0 的值表示不允許複製。

allow_synctoalternate

int

指定是否允許替代的同步處理夥伴與這個發行者同步。 0 的值表示不允許同步夥伴。

validate_subscriber_info

nvarchar(500)

列出用於擷取訂閱者資訊以及驗證訂閱者參數化資料列篩選器準則的函數。 它可以協助您確認每項合併的資訊分割都一致。

backward_comp_level

int

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

90 =SQL Server 2005 

90 = SQL Server 2005 SP1

90 = SQL Server 2005 SP2

100 =SQL Server 2008

publish_to_activedirectory

bit

指定發行集資訊是否發行到 Active Directory。 0 的值表示無法從 Active Directory 中取得發行集資訊。

這個參數已被取代,支援它的目的,只是為了與舊版的指令碼相容。 您不能再將發行集資訊加入 Active Directory 中。

max_concurrent_merge

int

並行合併處理序的數目。 如果為 0,表示在任何給定時間執行的並行合併處理數目都沒有限制。

max_concurrent_dynamic_snapshots

int

可以針對合併式發行集來執行的最大並行已篩選資料快照集工作階段數目。 如果是 0,能夠在任何給定時間針對發行集來同時執行之最大並行已篩選資料快照集的工作階段數目,就沒有任何限則。

use_partition_groups

int

判斷是否使用預先計算的資料分割。 1 的值表示使用預先計算的資料分割。

num_of_articles

int

發行集中的發行項數目。

replicate_ddl

int

是否複寫已發行的資料表之結構描述變更。 1 的值表示複寫結構描述變更。

publication_number

smallint

指派給這個發行集的號碼。

allow_subscriber_initiated_snapshot

bit

判斷訂閱者是否能夠起始產生已篩選資料快照集的程序。 1 的值表示訂閱者可以起始快照集處理。

allow_web_synchronization

bit

判斷是否啟用發行集的 Web 同步處理。 1 的值表示啟用 Web 同步處理。

web_synchronization_url

nvarchar(500)

Web 同步處理所用的網際網路 URL。

allow_partition_realignment

bit

判斷當修改發行者的資料列造成資料分割的變更時,是否要將刪除動作傳給訂閱者。 1 的值表示將刪除動作傳給訂閱者。 如需詳細資訊,請參閱<sp_addmergepublication (Transact-SQL)>。

retention_period_unit

tinyint

定義保留時所使用的單位。 這個值可以是下列其中一個值:

0 = 日

1 = 週

2 = 月

3 = 年

has_downloadonly_articles

bit

指出是否有任何屬於發行集的發行項是只限下載的發行項。 1 的值表示有只限下載的發行項。

decentralized_conflicts

int

指出是否將衝突記錄儲存在造成衝突的訂閱者端。 0 的值表示衝突記錄不會儲存在訂閱者端。 1 的值表示衝突記錄會儲存在訂閱者端。

generation_leveling_threshold

int

指定某個層代中包含的變更數目。 層代是指傳遞給發行者或訂閱者的變更集合

automatic_reinitialization_policy

bit

指出在自動重新初始化之前,是否從訂閱者上傳變更。 1 的值指出在自動重新初始化之前,是否從訂閱者上傳變更。 0 的值指出在自動重新初始化之前,不會上傳變更。

傳回碼值

0 (成功) 或 1 (失敗)

備註

sp_helpmergepublication 會用於合併式複寫。

權限

發行集的發行集存取清單成員可以執行這個發行集的 sp_helpmergepublication。 發行集資料庫的 db_owner 固定資料庫角色成員能夠執行 sp_helpmergepublication,以取得所有發行集的相關資訊。

範例

DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';

USE [AdventureWorks2012]
EXEC sp_helpmergepublication @publication = @publication;
GO

請參閱

參考

sp_addmergepublication (Transact-SQL)

sp_changemergepublication (Transact-SQL)

sp_dropmergepublication (Transact-SQL)

複寫預存程序 (Transact-SQL)

概念

檢視及修改發行集屬性