有没有人知道在不删除SQL Server中的列的情况下更改计算列的方法。我想停止将列用作计算列并开始直接在列中存储数据,但希望保留当前值。
这甚至可能吗?
答案 0 :(得分:9)
不是我知道的,但这是你可以做的事情
向表中添加另一列 使用计算列的值更新该列,然后删除计算列
答案 1 :(得分:1)
好的,让我看看我是否直截了当。您想要获取当前计算的列并使其成为普通的数据列。通常这会丢弃列,但您希望将数据保留在列中。
无论你做什么,我都非常确定更改列会丢弃它。这种方式有点复杂但不是那么糟糕,它会保存您的数据。
[编辑:@ SqlMenace的答案要容易得多。 :)诅咒你的威胁!! :)]
答案 2 :(得分:1)
如果您需要维护列的名称(以便不破坏客户端代码),则需要删除该列并添加一个具有相同名称的存储列。通过在单个事务中进行更改(按照SQLMenace的解决方案),您可以在不停机的情况下执行此操作。这是一些伪代码:
begin transaction drop computed colum X add stored column X populate column using the old formula commit transaction