Идентификационные столбцы - PullRequest
2 голосов
/ 26 января 2011

У меня есть столбец идентификаторов, который имеет несколько удалений, теперь он не работает, поскольку достигает максимального предела типа данных INT, как я могу вставить записи вместо удаленных без усечения всех данных?

Ответы [ 3 ]

5 голосов
/ 26 января 2011

Вы не можете "перерабатывать" неиспользуемые IDENTITY значения - если вы достигли конца диапазона данных INT, вам нужно изменить столбец ID на BIGINT.

ALTER TABLE dbo.YourTable
  ALTER COLUMN YourIDColumn BIGINT

Свойство IDENTITY будет сохранено - теперь у вас есть много дополнительных значений ID, доступных на ближайшие пару месяцев / лет!

4 голосов
/ 26 января 2011

Простите за очевидное ...

Вы начали с 1, с шагом 1? Если так, измените идентичность на -1, -1. Требуется перестроить таблицу, но это проще, чем перейти на bigint. И дает вам еще 2 миллиарда ID.

Тогда спланируй миграцию bigint ...

3 голосов
/ 26 января 2011

Это похоже на большую работу;почему бы просто не изменить первичный ключ в таблице (и любых связанных таблицах) с int на bigint?

int даст вам максимальное значение 2 147 483 647.

A bigint даст максимальное значение 9 223 372 036 854 775 807.

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