在SQL 2005中,当自动编号列的数量用完时会发生什么?

Max*_*ler 10 sql identity limits sql-server-2005

当SQL Server 2005碰巧达到IDENTITY列的最大值时会发生什么?它是从一开始就开始重新填补空白吗?

SQL Server 2005发生时的行为是什么?

xsl*_*xsl 14

达到最大值时,您将收到溢出错误.如果你使用bigint数据类型的最大值,9,223,372,036,854,775,807那很可能永远不会是这种情况.

您将收到的错误消息如下所示:

Msg 220, Level 16, State 2, Line 10
Arithmetic overflow error for data type tinyint, value = 256.
Run Code Online (Sandbox Code Playgroud)

(资源)

据我所知,MS SQL没有提供填充身份空白的功能,因此您必须自己执行此操作或更改标识列的数据类型.

除此之外,您还可以将起始值设置为最小的负数,以获得更大的值范围.

这是一篇关于这个主题的好博文.