MS SQL Server самый быстрый способ изменить определение столбца - PullRequest
1 голос
/ 10 июня 2009

Передо мной стоит задача изменить тип данных столбца таблицы с smallint на int для таблицы, содержащей 32 миллиона строк. Требуется минимальное время простоя (в основном это самый быстрый способ достижения этого). Мы используем SQL Server 2000.

Пожалуйста, помогите!

Ответы [ 2 ]

4 голосов
/ 10 июня 2009

Есть несколько вариантов, вы можете сделать онлайн копию таблицы и затем использовать sp_rename для ее отключения.

Другой способ - добавить новый столбец, заполнить его, затем удалить старый столбец и переименовать новый столбец.

32 м рядов можно считать большими или маленькими в зависимости от ширины ряда.

2 голосов
/ 10 июня 2009

Что бы вы ни делали, не используйте Enterprise Manager для изменения типа данных. Что он сделает, так это создаст новую таблицу, заполнит ее, переименует старую таблицу, переименует новую таблицу в имя старой таблицы и отбросит все это в одну неприятную транзакцию, блокирующую таблицу на несколько часов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...