Вы можете повторно заполнить IDENTITY
(установить новое начальное значение), но он НЕ сможет волшебным образом найти отсутствующие значения.....
Перезаданный столбец IDENTITY
будет просто продолжать выдавать новые значения, начиная с нового начального значения, что означает, что в какой-то момент, рано или поздно, произойдут коллизии с уже существующими значениями.
Таким образом, в целом повторное заполнение IDENTITY
действительно не очень хорошая идея... Просто выберите тип данных, достаточно большой, чтобы справиться с вашими потребностями.
С типом INT
, начиная с 1, вы получаете более 2 миллиардов возможных строк — этого должно быть более чем достаточно для подавляющего большинства случаев. С BIGINT
получается примерно 922 квадриллиона (922 с 15 нулями — 9 220 000 миллиардов) — вам достаточно??
Если вы используете INT IDENTITY
, начиная с 1, и вставляете строку каждую секунду, вам потребуется 66,5 лет, прежде чем вы достигнете лимита в 2 миллиарда....
Если вы используете BIGINT IDENTITY
, начинающийся с 1, и вы вставляете тысячу строк каждую секунду, вам потребуется ошеломляющее 292 миллиона лет, прежде чем вы достигнете предела в 922 квадриллиона. ..
Подробнее об этом (со всеми возможными вариантами) читайте в книгах MSDN Online а>.
person
marc_s
schedule
08.04.2015
IDENTITY
(установить новое начальное значение), но он НЕ сможет волшебным образом найти отсутствующие значения..... он просто будет продолжать выдавать новые значения, начиная с нового начального значения, что означает, что в какой-то момент произойдут конфликты с уже существующими значениями - не очень хорошая идея.... - person marc_s   schedule 08.04.2015