Максимум определяется типом данных, а не модификатором IDENTITY
. Для столбца INT
вы уже вычислили максимум. Если вам нужен тип данных с большим диапазоном, BIGINT
является очевидным выбором, и его вполне можно пометить IDENTITY
.
TINYINT
: от 0 до 255
SMALLINT
: от -32768 до 32767
INT
: от -2147483648 до 2147483647
BIGINT
: от -9223372036854775808 до 9223372036854775807
Я ожидаю, что будет возникать ошибка при попытке вставить строки после достижения максимума, поскольку реализация IDENTITY
все равно будет пытаться увеличиваться с каждой вставкой.
Хотя, безусловно, можно было бы заархивировать строки в какое-то другое хранилище данных и начать повторное использование идентификаторов (DBCC CHECKIDENT (jobs, RESEED, 0)
сбросит счетчик), SQL Server не предлагает готовые решения. Вы должны будете реализовать логику для этого самостоятельно, и, кроме того, вам нужно будет подумать, какие проблемы могут возникнуть при повторном использовании идентификаторов в вашем приложении. Например, для веб-приложения старые URL-адреса внезапно будут указывать на новые документы или возвращать 404 ошибки?