Можно ли использовать команду DBCC CHECKIDENT для сброса текущего значения столбца идентификаторов на исходное значение в SQL Server 2008?
Да.
Если да, это правильный способ выполнения этой операции без каких-либо недостатков?
Это единственный документированный способ сделать это.
Возможные недостатки: в конечном итоге вы можете получить дубликаты IDENTITY
значений - от SQL Server нет никакой гарантии, что он не вернет значение, которое еще не используется.
например. если ваш IDENTITY
в настоящее время равен 100, и вы сбросили его на 1, шансы рано или поздно будут получены, и это значение уже используется.
IDENTITY
, реализованный в SQL Server, не проверяет существующие значения или что-либо еще - он просто генерирует последовательные числа. Это зависит от вас - особенно если вы сделали RESEED
для этого IDENTITY
, чтобы убедиться, что значения не дублируются.