Мне нужно изменить длину столбца column_length, скажем, в более чем 500 таблицах, и в таблицах может не быть записей в диапазоне от 10 до 3 или 4 миллионов записей.
1) Столбец может быть обычным столбцом
create table test(column_length varchar(10))
2) Столбец может содержать некластеризованный индекс.
create table test(column_length varchar(10))
CREATE UNIQUE NONCLUSTERED INDEX column_length_ind ON test (column_length)
3) Столбец может содержать кластерный индекс PRIMARY KEY.
создать таблицу test (column_length varchar (10))
изменить тест таблицы добавить кластеризованный индекс первичного ключа на column_length
4) Столбец может быть составным первичным ключом
5) Столбец может иметь ссылку на внешний ключ
Короче колонка column_length может быть чем угодно.
Все, что мне нужно, это создать сценарии для изменения длины column_length с varchar(10) на varchar(50).
я должен удалить индексы перед изменением, а затем воссоздать их? А как насчет первичного и внешнего ключей?
Благодаря моим исследованиям и тестам я понял, что ...
Я могу просто изменить длину столбца, не удаляя первичный ключ или какие-либо индексы, но мне нужно отбросить и воссоздать только внешний ключ.
Это правильное предположение? Мне нужно подтверждение по этому поводу.





Да, вы должны иметь возможность просто изменять столбцы. По моему опыту, быстрее оставить индекс и первичный ключ на месте.
Скорее всего, вам нужно будет изменить столбец в таблицах внешнего ключа, чтобы увеличить размер. Итак, сначала вы отбрасываете ограничение fk, затем исправляете чужие поля kkey, затем исправляете поле первичного ключа, а затем снова устанавливаете ограничения.