SQL Server и пробелы в столбце идентичности - PullRequest
4 голосов
/ 29 марта 2010

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

Знаете ли вы, как контролировать это поведение?

СПАСИБО

1 Ответ

8 голосов
/ 29 марта 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...