有没有办法在不删除SQL Server中的计算列的情况下修改它?我想停止使用该列作为计算列,并开始直接存储数据到该列中,但是希望保留当前值。
这种操作是否可行?
有没有办法在不删除SQL Server中的计算列的情况下修改它?我想停止使用该列作为计算列,并开始直接存储数据到该列中,但是希望保留当前值。
这种操作是否可行?
我不知道有没有其他方法,但这里有一个可以尝试的方法:
在表中添加另一列
用计算列的值更新该列
然后删除计算列
如果您需要保留列的名称(以免破坏客户端代码),则需要删除该列并添加一个具有相同名称的存储列。您可以通过在单个事务中进行更改(类似于SQLMenace的解决方案)来实现无停机时间。以下是一些伪代码:
开始事务 删除计算列X 添加存储列X 使用旧公式填充列 提交事务
好的,让我看看我是否理解正确。您想将当前计算的列变为普通数据列。通常情况下,这会删除该列,但您想保留该列中的数据。
无论您做什么,我都很确定更改列都会删除它。这种方法有点复杂,但并不那么糟糕,并且可以保存您的数据。
[编辑:@SqlMenace的答案要简单得多。:) 诅咒你Menace!! :)]