假设我们有一张表:
create table MYTABLE (
id int IDENTITY(1,1)
,name varchar(10)
)
我们必须在表中插入很多行。
有人知道当生成的身份值超出最大整数值(2^32-1)时会发生什么吗?
答案1
您将收到以下错误:
Msg 8115, Level 16, State 1, Line 1
Arithmetic overflow error converting IDENTITY to data type int.
Arithmetic overflow occurred.
您将无法插入更多记录,直到您:
- 删除一些并重置标识列使用命令
DBCC CHECKIDENT
,
或者 - 将列的数据类型更改为
bigint
(建议加布里埃尔·吉马良斯)。
- 删除一些并重置标识列使用命令