Кто-нибудь знает способ изменить вычисляемый столбец, не удаляя столбец в SQL Server. Я хочу перестать использовать столбец в качестве вычисляемого столбца и начать хранить данные непосредственно в столбце, но хотел бы сохранить текущие значения.
Это вообще возможно?





Хорошо, позволь мне посмотреть, правильно ли я понял. Вы хотите взять столбец, который в настоящее время вычисляется, и сделать его обычным столбцом данных. Обычно при этом столбец отбрасывается, но вы хотите сохранить данные в столбце.
Независимо от того, что вы делаете, я почти уверен, что изменение столбца приведет к его падению. Этот способ немного сложнее, но не так уж плох и сохраняет ваши данные.
[Обновлено: ответ @SqlMenace намного проще. :) Прокляните вас, Угроза !! :)]
Не то, чтобы я знаю, но вот кое-что, что вы можете сделать
добавить еще один столбец в таблицу обновите этот столбец значениями вычисляемого столбца, затем отбросьте вычисляемый столбец
Если вам нужно сохранить имя столбца (чтобы не нарушать клиентский код), вам нужно будет отбросить столбец и добавить обратно сохраненный столбец с тем же именем. Вы можете сделать это без простоев, внося изменения (в соответствии с решением SQLMenace) в одной транзакции. Вот какой-то псевдокод:
begin transaction drop computed colum X add stored column X populate column using the old formula commit transaction