SQL Server 2008: что произошло, если идентификатор превысил максимальное значение int?

Представьте, что у нас есть стол:

create table MYTABLE (
 id int IDENTITY(1,1)
,name varchar(10)
)

Мы должны вставить много строк в таблицу.

Кто-нибудь знает, что произойдет, когда сгенерированное значение идентичности выходит за пределы максимального целочисленного значения (2^32-1)?

1 ответ

Решение
  1. Вы получите следующую ошибку:

    Msg 8115, Level 16, State 1, Line 1
    Arithmetic overflow error converting IDENTITY to data type int.
    Arithmetic overflow occurred.

  2. Вы не сможете вставить больше записей, пока вы:

    • удалить некоторые и сбросить столбец идентификации, используя DBCC CHECKIDENT команда,
      или же
    • изменить тип данных столбца на bigint (предложено Gabriel Guimarães).
Другие вопросы по тегам