SYSOBJECTS 表有一个 int 类型的标识列。但是 ID 列中的值越来越接近 int 最大值。我想当它达到最大值时将无法创建任何对象。
例如,有没有办法改变该表以将 ID 列转换为 BIGINT?或者有什么工具可以解决这个问题?
SYSOBJECTS 表有一个 int 类型的标识列。但是 ID 列中的值越来越接近 int 最大值。我想当它达到最大值时将无法创建任何对象。
例如,有没有办法改变该表以将 ID 列转换为 BIGINT?或者有什么工具可以解决这个问题?
你没有什么可担心的。
对象 ID 不是按顺序分配的。它们之间有 16000057 的间隙,并且只是在溢出时环绕(大约每几百个对象创建)所以你会在那里看到一些大数字是正常的。
这不适合(很好)在评论中。
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 个对象,则需要修复您的设计。故事结局。