Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Конфликты в репликации слиянием  [new]
19SAA
Member

Откуда:
Сообщений: 36
В репликации слиянием возникают конфликты следующего вида
A row insert at 'Subscriber.BD' could not be propagated to 'Publisher.BD'. This failure can be caused by a constraint violation. Нарушение "PK_TableName" ограничения PRIMARY KEY. Невозможно вставить повторяющийся ключ в объект "dbo.TableName".
Почему возникают такие ошибки?
Мое предположение такое: В приложении на БД подписчика запись не просто обновляется, а удаляется старая и добавляется новая с такими же значениями ключевых полей, при этом rowguid у этой записи становится новым и механизм репликации пытается вставить запись в таблицу на издателе, отсюда конфликт. Но почему механизм репликации не удаляет прежде старую запись на издателе? Проверил в MSmerge_tombstone на подписчике нет записи со старым rowguid.
Но почему тогда изменился rowguid на подписчике, если запись не удалялась?
17 ноя 09, 14:54    [7939955]     Ответить | Цитировать Сообщить модератору
 Re: Конфликты в репликации слиянием  [new]
ABV
Member

Откуда: Minsk
Сообщений: 88
а дублирующийся PK не мог придти с другого подписчика?
17 ноя 09, 16:40    [7940969]     Ответить | Цитировать Сообщить модератору
 Re: Конфликты в репликации слиянием  [new]
19SAA
Member

Откуда:
Сообщений: 36
Это мысль, спасибо
Поисследую с этой стороны поподробнее.
Только мне кажется что в таком случае должен быть конфликт типа "Запись удалена на одном подписчике и изменена на другом", вы ведь о такой ситуации говорите?
17 ноя 09, 16:52    [7941076]     Ответить | Цитировать Сообщить модератору
 Re: Конфликты в репликации слиянием  [new]
ABV
Member

Откуда: Minsk
Сообщений: 88
Нет, репликация отслеживает записи не по PK, а по rowguid, вопрос, могут ли на разных подписчиках пользователи создать записи с одинаковыми pk. pk у вас identity, или формируется как-то приложением?
17 ноя 09, 17:15    [7941235]     Ответить | Цитировать Сообщить модератору
 Re: Конфликты в репликации слиянием  [new]
19SAA
Member

Откуда:
Сообщений: 36
Вы правы. Во всех статьях, в которых возникают эти ошибки PK это комбинация нескольких полей. Записи с одинаковыми PK могут создаваться на разных подписчиках. Все просто, спасибо
18 ноя 09, 08:27    [7942853]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить