Я пытаюсь вставить несколько тысяч строк в таблицу в базе данных, которая реплицируется на двух серверах. От издателя или подписчика я получаю ту же ошибку:
Msg 548, Level 16, State 2, Line 1
The insert failed. It conflicted with an identity range check constraint in database 'XXX', replicated table 'dbo.NODE_ATTRIB_RSLT', column 'ID'. If the identity column is automatically managed by replication, update the range as follows: for the Publisher, execute sp_adjustpublisheridentityrange; for the Subscriber, run the Distribution Agent or the Merge Agent.
The statement has been terminated.
Проверяя ограничение на таблицу, мне кажется, что я должен иметь возможность вставлять не менее 1000 строк за раз перед запуском в проблемы. Тем не менее, я получаю ту же ошибку при попытке вставить всего несколько десятков строк!
Вот как я пытаюсь вставить данные:
insert into NODE_ATTRIB_RSLT
([NODE_ID]
,[ATTRIB_ID]
,[STATE_ID]
,[PLAN_REVISION_ID]
,[TIMESTAMP]
,[VALUE]
,[VALUE_TEXT]
,[LAST_MODIFIED])
SELECT [NODE_ID]
,[ATTRIB_ID]
,[STATE_ID]
,[PLAN_REVISION_ID]
,[TIMESTAMP]
,[VALUE]
,[VALUE_TEXT]
,[LAST_MODIFIED] FROM [NODE_ATTRIB_RSLT_TEMP]
Столбец PK представляет собой автогенерируемый идентификатор, называемый идентификатором. Чтобы попытаться вставить меньше строк за раз, я добавил предложение WHERE в конце выбора так:
WHERE ID >= 1000 and ID <1100
но безрезультатно.
Запуск sp_adjustpublisheridentityange в Publisher выполняется успешно, но не имеет эффекта.
Как я могу исправить эту проблему со вставками? Как изменить диапазоны ограничений диапазона отступов на более разумный уровень, оставив работу репликации?