Это довольно обычно.
Идентификационное начальное число выделяется до принятия запроса.Это означает, что если вы выполняете запрос, который вставляет 100 записей, но при получении запроса, если вы действительно хотите добавить 100 записей, вы нажимаете кнопку отмены, начальное число идентификаторов по-прежнему увеличивается на 100. То же самое считается для записей с копированием и многих других,многие другие операции.
Вам не нужно предотвращать это.Значения идентичности не предназначены для передачи какого-либо значения, и не должно быть реальной необходимости их изменения.Если для вашего столбца идентификаторов установлено значение Int(8)
или Long Integer
, у вас все еще остается много чисел для использования.
Сервер SQL явно блокирует обновление столбца идентификаторов, и вы также не можете повторно заполнитьуникальный столбец ниже изначально установленного семени.Это означает: как только вы введете номер 20305, вы не сможете сбросить его до значения, меньшего, чем 20305.
Вы можете обойти это ограничение, удалив все записи выше 20305, а затем запустив DBCC CHECKIDENT ( table_name )
на сервере SQL с именем таблицы, чтобы сбросить начальное значение до наибольшего значения.Затем вы можете повторно добавить удаленные записи.
Подробнее об этих вопросах и ответах о восстановлении потерянных номеров, хотя я, безусловно, советую против этого.