В нескольких ответах рекомендуется использовать утверждение примерно так:
DBCC CHECKIDENT (mytable, RESEED, 0)
Но ОП сказал "удалил некоторые записи", что может быть не все из них, поэтому значение 0 не всегда является правильным. В другом ответе предлагалось автоматически найти максимальное текущее значение и пересчитать его, но это приведет к проблемам, если в таблице нет записей и, следовательно, max () вернет NULL. Комментарий предложил использовать просто
DBCC CHECKIDENT (mytable)
для сброса значения, но другой комментарий правильно заявил, что это только увеличивает значение до максимума, уже имеющегося в таблице; это не приведет к уменьшению значения, если оно уже выше максимального значения в таблице, что и хотел сделать ОП.
Лучшее решение объединяет эти идеи. Первый CHECKIDENT сбрасывает значение до 0, а второй сбрасывает его до самого высокого значения в настоящее время в таблице, если в таблице есть записи:
DBCC CHECKIDENT (mytable, RESEED, 0)
DBCC CHECKIDENT (mytable)
Как указано в нескольких комментариях, убедитесь, что в других таблицах нет внешних ключей, указывающих на удаленные записи. В противном случае эти внешние ключи будут указывать на записи, которые вы создаете после повторного заполнения таблицы, что почти наверняка не соответствует вашим ожиданиям.