sp_helpmergeconflictrows (Transact-SQL)

適用於:SQL Server

傳回指定之衝突數據表中的數據列。 這個預存程式會在儲存衝突數據表的計算機上執行。

Transact-SQL 語法慣例

語法

sp_helpmergeconflictrows
    [ [ @publication = ] N'publication' ]
    , [ @conflict_table = ] N'conflict_table'
    [ , [ @publisher = ] N'publisher' ]
    [ , [ @publisher_db = ] N'publisher_db' ]
    [ , [ @logical_record_conflicts = ] logical_record_conflicts ]
[ ; ]

引數

[ @publication = ] N'publication'

發行集的名稱。 @publication為 sysname,預設值為 %。 如果指定發行集,則會傳回發行集所限定的所有衝突。 例如,如果 MSmerge_conflict_Customers 數據表具有 和 CA 發行集的衝突數據列WA,則傳入發行集名稱CA會擷取與發行集相關的CA衝突。

[ @conflict_table = ] N'conflict_table'

衝突數據表的名稱。 @conflict_table為 sysname,沒有預設值。 衝突數據表是使用格式名稱搭配 MSmerge_conflict__publication_article_*來命名,每個已發佈發行發行項都有一個數據表。

[ @publisher = ] N'publisher'

發行者的名稱。 @publisher為 sysname,預設值為 NULL

[ @publisher_db = ] N'publisher_db'

發行者資料庫的名稱。 @publisher_db為 sysname,預設值為 NULL

[ @logical_record_conflicts = ] logical_record_conflicts

指出結果集是否包含邏輯記錄衝突的相關信息。 @logical_record_conflicts為 int,預設值為 01 表示傳回邏輯記錄衝突資訊。

結果集

sp_helpmergeconflictrows 會傳回結果集,其中包含基表結構和這些額外的數據行。

資料行名稱 資料類型 描述
origin_datasource varchar(255) 衝突的來源。
conflict_type int 指出衝突類型的程式代碼:

1 = 更新衝突:在數據列層級偵測到衝突。

2 = 資料行更新衝突:在數據行層級偵測到的衝突。

3 = 更新刪除 Wins 衝突:刪除會贏得衝突。

4 = 更新 Wins 刪除衝突:刪除遺失衝突的已刪除 rowguid 會記錄在此數據表中。

5 = 上傳插入失敗:無法在發行者端套用訂閱者的插入。

6 = 下載插入失敗:無法在訂閱者端套用來自發行者的插入。

7 = 上傳刪除失敗:訂閱者端的刪除無法上傳至發行者。

8 = 下載刪除失敗:發行者端的刪除無法下載到訂閱者。

9 = 上傳更新失敗:訂閱者端的更新無法在發行者端套用。

10 = 下載更新失敗:發行者端的更新無法套用至訂閱者。

12 = 邏輯記錄更新 Wins Delete:遺失衝突的已刪除邏輯記錄會記錄在此數據表中。

13 = 邏輯記錄衝突插入更新:插入邏輯記錄與更新衝突。

14 = 邏輯記錄刪除 Wins 更新衝突:遺失衝突的更新邏輯記錄會記錄在此數據表中。
reason_code int 可區分內容的錯誤碼。
reason_text varchar(720) 可區分內容的錯誤描述。
pubid uniqueidentifier 發行集標識碼。
MSrepl_create_time datetime 新增衝突信息的時間。

傳回碼值

0 (成功)或 1 (失敗)。

備註

sp_helpmergeconflictrows 用於合併式複寫。

權限

只有系統管理員固定伺服器角色的成員db_owner固定資料庫角色,以及散發資料庫中的 replmonitor 角色可以執行 sp_helpmergeconflictrows