0

SYSOBJECTS 表有一个 int 类型的标识列。但是 ID 列中的值越来越接近 int 最大值。我想当它达到最大值时将无法创建任何对象。

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

4

2 回答 2

3

你没有什么可担心的。

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

于 2020-01-09T12:34:40.810 回答
0

这不适合(很好)在评论中。

来自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 个对象,则需要修复您的设计。故事结局。

于 2020-01-09T12:24:47.280 回答