SQL Server 系统表标识 crysis / SYSOBJECTS 表 ID 接近 int 最大值



SYSOBJECTS 表有一个 int 类型的标识列。但是 ID 列中的值正在接近整数最大值。我想当它达到最大值时,将变得不可能创建任何对象。

例如,有没有办法更改该表以将 ID 列转换为 BIGINT?或者有什么工具可以解决这个问题吗?

你没有什么可担心的。

对象 ID 不是按顺序分配的。它们之间有16000057的间隙,并且只是在溢出时环绕(大约每几百个对象创建一次(,所以你会看到一些大数字是正常的。

这不适合(很好(评论。

从 SQL Server 的最大容量规格:

SQL Server Database | Maximum sizes/numbers | Additional Information 
Engine object       | SQL Server (64-bit)   |
--------------------|-----------------------|----------------------------------------------------
Tables per database | Limited by number of  | Database objects include objects such as tables,
| objects in a database | views, stored procedures, user-defined functions,
|                       | triggers, rules, defaults, and constraints.
|                       | The sum of the number of all objects in a database
|                       | cannot exceed 2,147,483,647. 

如果您接近 2,147,483,647 个对象,则需要修复您的设计。故事结束。

最新更新