Всего несколько часов назад мы начали получать ошибку, которая, насколько я могу судить, «невозможна». Ошибка
Нарушение ограничения PRIMARY KEY PK_RntlApp. Невозможно вставить повторяющийся ключ в объект Rental_Application.
Я считаю, что это невозможно, потому что первичный ключ таблицы Rental_Application называется «File_ID» и является целым числом autonumber. Код, вызывающий это, работал буквально 12 лет подряд.
Это должно быть связано - мы использовали для репликации этой базы данных. Обе базы данных зарезервировали бы диапазон значений идентичности, которые они могли бы вставить, чтобы данные можно было вставить в обе базы данных и объединить без инцидентов.
Мы сломали эту репликацию пару месяцев назад. До недавнего времени все работало нормально.
Любая помощь или указатели будут очень благодарны.
Вы можете попробовать выполнить следующее, чтобы узнать, какое значение является текущим значением идентификатора. Затем посмотрите, есть ли это значение в базе данных.
SELECT IDENT_CURRENT('table_name')
Вы можете выйти за пределы запланированного диапазона значений и достичь существующего значения. Или, может быть, какой-то процесс или человек вставили значение в столбец идентификаторов и избежали процесса автоматической нумерации.
Вы можете использовать следующую команду, чтобы сбросить начальное значение идентификатора.
DBCC CHECKIDENT (<table name>, RESEED, <new value>)
Таким образом, вы можете переместить следующее значение в неиспользуемый диапазон или даже на максимальное текущее значение в столбце.