Установить Identity_insert на — репликация слиянием

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

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

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

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


person Paul McCann    schedule 12.03.2009    source источник


Ответы (2)


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

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

Ссылка Репликация столбцов идентификации

person Mitch Wheat    schedule 12.03.2009
comment
Спасибо, Митч, но в ситуации, с которой я имею дело, клиенты активно вводят записи как в пабе, так и в подписке, которым присваиваются идентификаторы. Есть определенный идентификатор, который я хочу вставить в паб (ниже текущего диапазона). но я хочу, чтобы клиенты, которые добавляют в паб, добавляли в пределах диапазона. - person Paul McCann; 12.03.2009

Я решил, увеличив автоматическую вставку, увеличив 20000 строк. Здесь добавлен полезный блог

person MicG    schedule 29.02.2020