MSmerge_conflicts_info (Transact-SQL)

Таблица MSmerge_conflicts_info предназначена для отслеживания конфликтов при синхронизации подписки и публикации слиянием. Потерянные при конфликтах данные строк сохраняются в таблице MSmerge_conflict_publication_article для статьи, в которой возник конфликт. Эта таблица хранится на стороне издателя в базе данных публикации, а также на стороне подписчика в базе данных подписки.

Имя столбца

Тип данных

Описание

tablenick

int

Псевдоним опубликованной таблицы.

rowguid

uniqueidentifier

Идентификатор конфликтной строки.

origin_datasource

nvarchar(255)

Имя базы данных-источника конфликтного изменения.

conflict_type

int

Тип возникшего конфликта может быть одним из следующих:

1 = конфликт обновления: конфликт обнаружен на уровне строки.

2 = конфликт обновления столбца: конфликт обнаружен на уровне столбца.

3 = удаление побеждает в конфликте с обновлением: конфликт разрешен удалением.

4 = обновление побеждает в конфликте с удалением: идентификатор строки rowguid, удаление которой из-за конфликта не состоялось, записывается в данную таблицу.

5 = неудачная вставка при передаче: выполнение вставки со стороны подписчика на стороне издателя оказалось невозможным.

6 = неудачная вставка при загрузке: выполнение вставки со стороны издателя на стороне подписчика оказалось невозможным.

7 = неудачное удаление при передаче: передача удаления со стороны подписчика на сторону издателя оказалась невозможной.

8 = неудачное удаление при загрузке: загрузка удаления со стороны издателя на сторону подписчика оказалась невозможной.

9 = неудачное обновление при передаче: выполнение обновления со стороны подписчика на стороне издателя оказалось невозможным.

10 = неудачное обновление при загрузке: выполнение обновления со стороны издателя на стороне подписчика оказалось невозможным.

11 = разрешение.

12 = обновление логической записи побеждает в конфликте с удалением: удаленная логическая запись, которая уступает в конфликте, записывается в данную таблицу.

13 = вставка логической записи побеждает в конфликте с обновлением: вставка в логическую запись конфликтует с обновлением.

14 = удаление логической записи побеждает в конфликте с обновлением: обновленная логическая запись, которая уступает в конфликте, записывается в данную таблицу.

reason_code

int

Код ошибки, который может зависеть от контекста. В случае конфликтов «обновление-обновление» и «обновление-удаление» значение, используемое для этого столбца равно значению conflict_type. Однако в случае конфликтов, связанных с неудачными изменениями, код причины равен ошибке, которая не дала агенту слияния применить изменения. Например, если агент слияния не может применить вставку на подписчике из-за нарушения первичного ключа, он записывает значение conflict_type, равное 6 («неудачная вставка при загрузке»), и значение reason_code, равное 2 627, которое является внутренним сообщением SQL Server об ошибке, связанной с нарушением первичного ключа: «Нарушение ограничения '%.*ls' для %ls. Не удается вставить повторяющийся ключ в объект '%.*ls'».

reason_text

nvarchar(720)

Описание кода ошибки, который может зависеть от контекста.

pubid

uniqueidentifier

Идентификатор публикации.

MSrepl_create_time

datetime

Время возникновения конфликта.

origin_datasource_id

uniqueidentifier

Идентификатор базы данных, откуда было произведено конфликтное изменение.