1-минутный поиск в Google дал мне страницу, которую я не могу отобразить. Google это и это будет ваша первая ссылка на 01.06.2009: tsql исправить "столбец идентичности"
По сути, я бы предложил добавить ограничение внешнего ключа между всеми вашими реляционными полями к соответствующему полю идентификатора перед выполнением любого перенумерации (что также ужасно, если есть какие-либо отношения, строго потому, что если вы спрашиваете этот вопрос, у вас будет чертовски много времени).
Если ваша таблица контактов является вашей ТОЛЬКО таблицей или имеет отношения НОЛЬ, основанные на этом поле идентификатора, вы можете установить для свойства Identity значение NO, изменить нумерацию значений с 1 на COUNT (ID), затем установить для свойства Identity значение YES, и повторно заполнить личность для завершения, используя:
ОБЪЯВИТЬ @MaxID INT
SELECT @MaxID = COUNT (ID) ИЗ TableID
DBCC CHECKIDENT ('TableID', RESEED, @MaxID)
В этом сценарии вы можете использовать приведенный выше сценарий повторного заполнения после каждого набора удалений (но измените COUNT (ID) на MAX (ID), как только все будет правильно и правильно настроено, это добавляет небольшую скорость по мере увеличения таблицы ), до каких-либо дополнительных вставок или обновлений ограничений внешнего ключа. Убедитесь, что вы используете TRANSACTIONS, обернутые вокруг блоков удаления и повторного заполнения, и убедитесь, что в таблице разрешены только синхронные транзакции, это предотвратит потерю данных в середине повторного заполнения.
Комплекс а? Вот почему лучше начать с правой ноги. ;) (Я узнал об этом из своего опыта) Если у вас есть вопросы, напишите мне на mraarone et yahoo d0t com.