Установить Identity_insert на - Слияние репликации - PullRequest
13 голосов
/ 12 марта 2009

У меня настроена репликация слиянием между двумя базами данных, и я использую диапазоны идентификаторов для обеих.

Я хочу добавить определенную строку в объединенную таблицу (установив значение идентификатора для чего-либо за пределами диапазона идентификаторов) на издателе. Когда я пытаюсь это сделать, я получаю следующую ошибку.

Вставка не удалась. Это противоречило проверке диапазона идентификаторов ограничение в базе данных «xxx», реплицированная таблица «dbo.yyy», столбец 'Yyy_id. Если столбец идентификаторов автоматически управляется репликации, обновите диапазон следующим образом: для издателя выполните sp_adjustpublisheridentityrange; для подписчика запустите Агент распространения или Агент слияния.

Есть ли способ принудительно задать конкретное значение идентификатора в реплицированной таблице слияния, использующей управление диапазоном идентификаторов?

1 Ответ

3 голосов
/ 12 марта 2009

Один из способов - убедиться, что каждый узел в топологии репликации использует различный диапазон значений идентичности, чтобы дублирования не возникало.

Например, издатель может быть назначен диапазон 1-100, абонент А диапазон 101-200 и абонент B диапазон 201-300. Если строка вставлен в издатель и значение идентичности составляет, например, 65, это значение копируется для каждого Абонент. Когда репликация вставляет данные на каждого подписчика, это не увеличить значение столбца идентичности в Абонентский стол; вместо этого вставлено буквальное значение 65 Только пользователь вставляет, но не реплицирует вставки агента вызывают идентичность значение столбца для увеличения.

Ref. Копирование столбцов идентификации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...