SQL Server 2008:如果身份超过int的最大值,会发生什么?

Tim*_*fey 1 sql-server identity identity-column sql-server-2008

想象一下,我们有一张桌子:

create table MYTABLE (
 id int IDENTITY(1,1)
,name varchar(10)
)
Run Code Online (Sandbox Code Playgroud)

我们必须在表中插入很多行.

有人知道当生成的标识值超过最大整数值(2 ^ 63-1)时会发生什么?

gbn*_*gbn 5

一个例子

create table dbo.MYTABLE (
 id tinyint IDENTITY(254,1)
,name varchar(10)
)
GO
INSERT dbo.MYTABLE (name) VALUES ('row 254')
GO
INSERT dbo.MYTABLE (name) VALUES ('row 255')
GO
INSERT dbo.MYTABLE (name) VALUES ('broke')
GO
Run Code Online (Sandbox Code Playgroud)

Msg 8115, Level 16, State 1, Line 1
Arithmetic overflow error converting IDENTITY to data type tinyint.
Arithmetic overflow occurred.
Run Code Online (Sandbox Code Playgroud)