Причину пробелов в 1000 значений см. Ответ Аарона Бертрана
На самом деле нет смысла «хотеть» удалить пробелы. Содержимое столбца идентичности не содержит информации semanti c. Он не коррелирует ни с чем «в мире» вне базы данных. Пробелы так же бессмысленны, как и сами значения.
Я не понимаю, как uniqueidentifier
может «предотвратить» эту проблему. Уникальный идентификатор может быть «осмысленно» сортируемым (если вы используете newsequentialid()
), но нет никакого смысла в том, чтобы какое-либо конкретное значение было «на одно больше», чем предыдущее значение.
Вы, конечно, можете попробовать создать свой алгоритм генерации ключей, который не создает пропусков, но вы столкнетесь с проблемами параллелизма (также упомянутыми г-ном Бертраном).