Когда ALTER TABLE ... ALTER COLUMN
не поддерживается (как в вашем случае), изменение типа столбца лучше всего выполнить в четыре этапа:
- добавить новый столбец с правильным типом
- обновить базу данных, чтобы она соответствовала значениям в старом и новом столбце
- используя
sp_rename
, поменяйте имя нового столбца со старым столбцом
- отбросить старый столбец
Альтернатива:
- создать новую таблицу с нужными столбцами
- скопировать данные в новую таблицу
- использовать sp_rename, чтобы поменять имена между старой и новой таблицами
- уронить старый стол
Лучший путь зависит от многих факторов, таких как размер данных, существующие ограничения, внешние ключи, ссылающиеся на таблицу, некластеризованные индексы, представления и пользовательские функции, ссылающиеся на таблицу, репликация, существующие триггеры и процедуры и т. Д. И т. Д. И т. Д. , Невозможно дать простой ответ, потому что сама проблема сложна, если учитывать all значения.