Как восстановить номера индексации, пропущенные в базе данных MS Access - PullRequest
0 голосов
/ 11 февраля 2019

Я использую базу данных MS Access на SQL Server Management 18. По какой-то причине, когда я создал новую запись, 994 индексных номера просто пропустили.Мое последнее индексированное число было 19311, а затем оно внезапно подскочило до 20305 при захвате.Что я могу сделать, чтобы снова запустить его с 19311 года?

1 Ответ

0 голосов
/ 11 февраля 2019

Это довольно обычно.

Идентификационное начальное число выделяется до принятия запроса.Это означает, что если вы выполняете запрос, который вставляет 100 записей, но при получении запроса, если вы действительно хотите добавить 100 записей, вы нажимаете кнопку отмены, начальное число идентификаторов по-прежнему увеличивается на 100. То же самое считается для записей с копированием и многих других,многие другие операции.

Вам не нужно предотвращать это.Значения идентичности не предназначены для передачи какого-либо значения, и не должно быть реальной необходимости их изменения.Если для вашего столбца идентификаторов установлено значение Int(8) или Long Integer, у вас все еще остается много чисел для использования.

Сервер SQL явно блокирует обновление столбца идентификаторов, и вы также не можете повторно заполнитьуникальный столбец ниже изначально установленного семени.Это означает: как только вы введете номер 20305, вы не сможете сбросить его до значения, меньшего, чем 20305.

Вы можете обойти это ограничение, удалив все записи выше 20305, а затем запустив DBCC CHECKIDENT ( table_name ) на сервере SQL с именем таблицы, чтобы сбросить начальное значение до наибольшего значения.Затем вы можете повторно добавить удаленные записи.

Подробнее об этих вопросах и ответах о восстановлении потерянных номеров, хотя я, безусловно, советую против этого.

...