2017-02-15 27 views
1

Существуют ли какие-либо технические соображения при установке начального значения для столбца идентификации на SQL-сервере?Имеет ли исходное значение семян для столбца идентификации сервера sql

Этот столбец будет PK и отмечен как auto increment Identity.

Бизнес не хочет запускать идентификаторы в 1, потому что они будут публично видимы в строках запроса и отображаются на нескольких страницах. Использование более высокого случайного числа делает его более удобным, это все имеет смысл для меня, и я хочу убедиться, что у меня нет технических соображений.

Это пример того, что я собираюсь сделать

--Reset manufacturer id to a Random 5 digit number 
DECLARE @newId INT = (SELECT FLOOR(RAND() * 100000) + 10000 % 10000) 
DBCC CHECKIDENT (Manufacturer, RESEED, @newId); 
+0

Ну, переустановка может быть проблемой, если у вас уже есть значения в столбце table.ID. Как правило, вам необходимо убедиться, что он выше существующих. (Нижний может работать тоже, но это сложнее) – RBarryYoung

+3

Этот тип вещей НЕ должен быть видимым в строке запроса. Это большой красный флаг, что ваш код не разработан хорошо. Это потенциально означает, что пользователи могут изменять запрос и просматривать данные, принадлежащие кому-то другому. И, честно говоря, это, как правило, не должно быть ценностью, которую должны видеть пользователи. Нет никаких технических причин, по которым вы не можете запустить его по любому желаемому значению. Но имейте в виду, что вы можете периодически получать большие промежутки времени. –

+0

@RBarryYoung Thats right, мои таблицы будут полностью пустыми – GER

ответ

0

Подведение итогов в комментарии.

Начальное значение идентификатора должно учитывать любые значения, уже приведенные в таблице. Поскольку идентификатор будет автоматически увеличиваться, он может столкнуться с уже существующими значениями, если идентификатор посеян слишком низко.

В пробелы могут появляться большие пробелы. Однако маловероятно, что старшее начальное семя и многие пробелы могут привести к истощению диапазона INT для столбца. Тогда приложение идет бум!

Всех индексы на колонке не должны заботиться, если он начинается с 1 или 99999.

0

Я не вижу никакой проблемы с началом в некоторой случайной будущем число.

 Смежные вопросы

  • Нет связанных вопросов^_^