Как заставить автоматически увеличивающийся столбец идентификатора использовать пропущенные числа в SQL Server? - PullRequest
0 голосов
/ 15 марта 2019

Скажем, у меня есть таблица с 100 строками и автоматически увеличивающимся столбцом id, и я удаляю строку с id = 15.Как я могу добавить новую строку с id = 15 вместо id = 101?

Ответы [ 2 ]

1 голос
/ 15 марта 2019

Нет, не делай этого.

Сгенерированные первичные ключи используются для создания уникальных значений, которые используются внутренне . Они не должны быть "сексуальными" или красивыми. Это НЕ их цель; Цель ПК - уникальность. Если вас беспокоят конкретные значения, то это означает, что вы выставляете ПК во внешний мир ... что-то, что вызывает много красных флажков.

Если вам нужно выставить значение, не используйте для этого PK, а создайте для него вторичный столбец. Его единственная цель в мире - быть разоблаченным. Это значение может иметь удобное форматирование с тире (например, SSN), префиксами, суффиксами и т. Д.

0 голосов
/ 15 марта 2019

Если у вас есть таблица с полем идентификационного ключа, вы можете использовать это:

SET IDENTITY_INSERT YourTableName ON
INSERT INTO YourTableName (ID, Other) VALUES (15, 'Whatever')
SET IDENTITY_INSERT YourTableName OFF
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...