#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 никак не возвращается и не заполняет пробелы.