Int Первичный ключ - превышение диапазона int - PullRequest
6 голосов
/ 07 декабря 2010

Просто интересно, что же на самом деле происходит после того, как вы превысили 2147483647 записей?

Ответы [ 3 ]

12 голосов
/ 07 декабря 2010

попробуйте

CREATE TABLE #tester (
    testerid INT IDENTITY(1, 1) not null CONSTRAINT pk_tester 
    PRIMARY KEY CLUSTERED)

DBCC checkident(#tester, reseed, 2147483647)

INSERT #tester DEFAULT VALUES 
INSERT #tester DEFAULT VALUES 

Сообщение 8115, Уровень 16, Состояние 1, Строка 1
Ошибка арифметического переполнения при преобразовании IDENTITY в тип данных int.

См. Также Что делать, когда ваш столбец идентичности исчерпан?

1 голос
/ 02 февраля 2011

Если вы считаете это вероятным, используйте тип данных с большим диапазоном.NUMERIC или BIGINT, например.

1 голос
/ 07 декабря 2010

Большинство людей забывают, что у int есть отрицательная сторона, которая больше положительной. Если вы думаете, что можете опередить положительные значения int, просто начните свою идентичность с отрицательного конца диапазона -2 147 483 648. Или по-настоящему играть с новым администратором базы данных, начиная с 2 147 483 647 и шаг за шагом -1.

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