За кулисами это добавит новый столбец фиксированной длины в каждую строку, так что если вам нужно сделать это как онлайн-операцию, чтобы уменьшить накладные расходы и уменьшить размер транзакции, на вашем месте я бы просто сделал это явно.
ALTER TABLE CashTable ADD COLUMN Cash2 decimal(23,8) null
Затем добавьте триггеры INSERT
и UPDATE
, чтобы синхронизировать Cash2
со столбцом Cash
, и обновляйте новый столбец в пакетном режиме.
Когда вся таблица синхронизируется, отбросьте исходный столбец и переименуйте новый. Надеюсь, у вас нет кода, зависящего от порядкового порядка столбцов.
Нет риска потери данных, так как это может справиться с диапазоном money
штраф (-922,337,203,685,477.5808
до 922,337,203,685,477.5807
).