SQL Кризис идентификации системной таблицы сервера / ID таблицы SYSOBJECTS близок к значению int max - PullRequest
0 голосов
/ 09 января 2020

Таблица SYSOBJECTS имеет столбец идентификаторов типа int. Но значения в столбце ID приближаются к значению int max. Я думаю, что станет невозможно создавать какие-либо объекты, когда он достигнет своего максимума.

Есть ли способ изменить эту таблицу для преобразования столбца ID в BIGINT, например? Или есть какие-то инструменты, которые могут решить эту проблему?

Ответы [ 2 ]

3 голосов
/ 09 января 2020

Вам не о чем беспокоиться.

Идентификаторы объектов не назначаются последовательно. Они имеют промежуток 16000057 между ними и просто переполняются при переполнении (примерно каждые несколько сотен созданий объектов), поэтому вполне нормально, что вы увидите там большие числа.

0 голосов
/ 09 января 2020

Это не вписывается (хорошо) в комментарий.

С Характеристики максимальной емкости для SQL Сервер :

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 объектов, вам нужно исправить свой дизайн. Конец истории.

...