SQL Server и пробелы в столбце Identity

Я только заметил, что если у меня есть столбец идентификатора в таблице, когда я вставляю новые строки, SQL Server 2008 автоматически заполняет последовательность, если есть разрыв. Я имею в виду, если в моем столбце идентификации у меня есть 1,2,5,6, если я вставляю другие две строки в таблицу, система автоматически помещает 3, 7 в столбец идентичности.

Вы знаете, как управлять этим поведением?

спасибо

Ответ 1

Это определенное и документированное поведение SQL Server, и вы действительно не можете его изменить. Что вы хотели изменить об этом?

Столбцы IDENTITY гарантируют уникальный, постоянно увеличивающийся идентификатор (пока вы не обходитесь с ними) - они ничего не гарантируют.

SQL Server не столкнется с проблемой обнаружения "пробелов" в вашей последовательности и их заполнения. Я не думаю, что это было бы хорошей идеей, так или иначе - что, если у вас была запись с ID = 3, а затем удалена? Вы действительно хотите, чтобы следующая запись внезапно "переработала" этот идентификатор? На мой взгляд, неплохая идея.