Неожиданный сброс / значение автоматической идентификации SQL Server

#sql #sql-server #tsql

#sql #sql-server #tsql

Вопрос:

Версия SQL Server: 12.0.5556.0

Проблема: SQL Server сгенерировал неожиданную идентификацию или выполнил сброс значения автоматической идентификации

Информация: У меня есть клиентская система, в которой работает SQL Server 12.0.556.0, где на этапе тестирования я сгенерировал некоторые тестовые данные, которые были удалены при запуске системы. Таким образом, значение идентификатора в этой таблице начиналось с ~ 34.000, когда система была запущена в производство в 2018 году.

Теперь, спустя 2 года, значение идентификатора составляет ~ 90 000, но несколько дней назад была создана запись с идентификатором 1. Когда я запрашиваю таблицу, в select IDENT_CURRENT('MyTable') ней отображается значение 90182.

Теперь к моему вопросу, есть ли какая-либо причина, по которой SQL Server внезапно изменит значение идентификатора на 1, а затем вернется к текущему значению идентификатора ~ 90.000?

Ответ №1:

Одна из возможностей заключается в том, что кто-то установил identity_insert значение ON для таблицы и вставил строку.

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

И, identity гарантированно будет увеличивающимся значением (хотя могут быть пробелы) при автоматическом создании.

Комментарии:

1. Хорошо, так что SQL Server по какой-то причине не заполняет эти пробелы самостоятельно? Спасибо за быстрый ответ.

2. Нет. SQL Server никак не возвращается и не заполняет пробелы.