Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Сведения о сообщении
| Название продукта | SQL Server |
| Идентификатор события | 2627 |
| Источник события | MSSQLSERVER |
| Компонент | Система управления базами данных SQL Server |
| Символическое имя | Не применимо |
| Текст сообщения | Нарушение ограничения "%.*ls" для %ls. Не удается вставить повторяющийся ключ в объект "%.*ls". |
Объяснение
Это общая ошибка, которая может быть вызвана независимо от того, реплицируется ли база данных. В реплицированных базах данных ошибка обычно возникает, так как первичные ключи не управляются соответствующим образом в топологии. В распределенной среде важно убедиться, что одно и то же значение не вставляется в столбец первичного ключа или любой другой уникальный столбец на нескольких узлах. Причиной могут быть следующие факторы:
Вставка и обновление строки происходят на нескольких узлах. Репликация слиянием и обновляемые подписки для транзакционной репликации обеспечивают обнаружение конфликтов и разрешение конфликтов, но все же предпочтительно вставлять или обновлять указанную строку только на одном узле. Одноранговая транзакционная модель не обеспечивает обнаружение и разрешение конфликтов; для этого требуется разделять вставки и обновления.
Строка была вставлена на подписчике, который должен быть только для чтения. Подписчики публикаций моментальных снимков должны рассматриваться как доступные только для чтения, как и подписчики транзакционных публикаций, если не используется обновляемая подписка или одноранговая репликация транзакций.
Используется таблица со столбцом идентификаторов, но столбец управляется ненадлежащим образом.
Действие пользователя
Необходимое действие зависит от причины возникновения ошибки:
Вставка и обновление строки происходят на нескольких узлах.
Независимо от типа репликации, которую вы используете, мы рекомендуем по возможности разбивать вставки и обновления на сегменты, так как это позволяет сократить обработку, необходимую для обнаружения и разрешения конфликтов. Для одноранговой репликации транзакций требуется секционирование вставок и обновлений. Дополнительные сведения см. в разделе " Одноранговая репликация транзакций".
Строка была вставлена на подписчике, который должен быть только для чтения.
Не вставлять или обновлять строки на подписчике, если вы не используете репликацию слиянием, репликацию транзакций с обновляемыми подписками или одноранговую репликацию транзакций.
Используется таблица со столбцом идентификаторов, но столбец не управляется правильно.
Для репликации слиянием и транзакционной репликации с обновляемыми подписками столбцы идентификаторов должны управляться репликацией автоматически. Для одноранговой репликации транзакций они должны управляться вручную. Дополнительные сведения см. в разделе "Репликация столбцов удостоверений".
См. также
Справочник по ошибкам и событиям (репликация)
Репликация слиянием
Транзакционная репликация по принципу 'от равного к равному'
Обновляемые подписки для репликации транзакций