sp_helpmergeconflictrows (Transact-SQL)
傳回指定衝突資料表中的資料列。這個預存程序是在儲存了衝突資料表的電腦中執行的。
語法
sp_helpmergeconflictrows [ [ @publication = ] 'publication' ]
, [ @conflict_table = ] 'conflict_table'
[ , [ @publisher = ] 'publisher' ]
[ , [ @publisher_db = ] 'publsher_db' ]
[ , [ @logical_record_conflicts = ] logical_record_conflicts ]
引數
[@publication=] 'publication'
這是發行集的名稱。publication 是 sysname,預設值是 %。如果指定發行集的話,就會傳回發行集所限定的所有衝突。例如,如果 MSmerge_conflict_Customers 資料表有 WA 和 CA 發行集的衝突資料列,傳入發行集名稱 CA 會擷取 CA 發行集的相關衝突。[@conflict_table=] 'conflict_table'
這是衝突資料表的名稱。conflict_table 是 sysname,沒有預設值。在 Microsoft SQL Server 2005 和更新版本中,衝突資料表是利用 MSmerge_conflict_publication_article 的格式名稱來命名的,每個發行的發行項都有一份資料表。[@publisher=] 'publisher'
這是發行者的名稱。publisher 是 sysname,預設值是 NULL。[@publisher_db=] 'publisher_db'
這是發行者資料庫的名稱。publisher_db 是 sysname,預設值是 NULL。[@logical_record_conflicts= ] logical_record_conflicts
指出結果集是否包含有關邏輯記錄衝突的資訊。logical_record_conflicts 是 int,預設值是 0。1 表示會傳回邏輯記錄衝突資訊。
結果集
sp_helpmergeconflictrows 會傳回基底資料表結構和下列其他資料行所組成的結果集。
資料行名稱 |
資料類型 |
描述 |
---|---|---|
origin_datasource |
varchar(255) |
衝突的來源。 |
conflict_type |
int |
衝突類型的代碼: 1 = 更新衝突:在資料列層級偵測到衝突。 2 = 資料行更新衝突:在資料行層級偵測到衝突。 3 = 更新刪除成功衝突:刪除在衝突中成功。 4 = 更新成功刪除衝突:衝突失敗且已刪除的 rowguid 會記錄在這份資料表中。 5 = 上載插入失敗:訂閱者的插入無法套用在發行者端。 6 = 下載插入失敗:發行者的插入無法套用在訂閱者端。 7 = 上載刪除失敗:訂閱者端的刪除無法上載到發行者。 8 = 下載刪除失敗:發行者端的刪除無法下載到訂閱者。 9 = 上載更新失敗:訂閱者端的更新無法套用在發行者端。 10 = 下載更新失敗:發行者端的更新無法套用在訂閱者端。 12 = 邏輯記錄更新成功刪除:衝突失敗且已刪除的邏輯記錄會記錄在這份資料表中。 13 = 邏輯記錄衝突插入更新:邏輯記錄的插入與更新發生衝突。 14 = 邏輯記錄刪除成功更新衝突:衝突失敗且已更新的邏輯記錄會記錄在這份資料表中。 |
reason_code |
int |
可為內容相關的錯誤碼。 |
reason_text |
varchar(720) |
可為內容相關的錯誤描述。 |
pubid |
uniqueidentifier |
發行集識別碼。 |
MSrepl_create_time |
datetime |
加入衝突資訊的時間。 |
傳回碼值
0 (成功) 或 1 (失敗)
備註
sp_helpmergeconflictrows 用於合併式複寫中。
權限
只有系統管理員 (sysadmin) 固定伺服器角色、db_owner 固定資料庫角色以及散發資料庫中之 replmonitor 角色的成員,才能夠執行 sp_helpmergeconflictrows。