题
任何人都不会知道的一种方式来改变计算列不放弃列在SQL服务器。我想要停止使用列为计算列,并开始存储数据直接在列,但愿保留目前的价值观。
是这个可能吗?
解决方案
不,我知道但这里是你可以做点什么
增加的另一个列表 更新,列的值的计算列,然后降的计算列
其他提示
Ok,那让我看看如果我得到了这笔直的。你想要列目前的计算,并使它成为一个纯简数据列。通常这会降列但你想要保持数据中列。
- 做一个新的表与主键列从你的来源表中所产生的柱。
- 复制数据,从你的来源表进入新的表格。
- 改变列在您的来源表。
- 复制的数据。
不管你做什么我很肯定更改列将下降。这种方法是一个比较复杂,但不是坏,这样可以节省你的数据。
[编辑:@SqlMenace的回答是要容易得多。:)诅咒你的威胁!!:)]
如果你需要保持的列名称(以便不破坏客户的代码),则将需要下列和重新添加一个储存列有相同的名称。你可以这样做没有停机制的变化(沿线的SQLMenace的解决方案)在一个单一的交易。这里的一些伪码:
begin transaction drop computed colum X add stored column X populate column using the old formula commit transaction
不隶属于 StackOverflow