任何人都不会知道的一种方式来改变计算列不放弃列在SQL服务器。我想要停止使用列为计算列,并开始存储数据直接在列,但愿保留目前的价值观。

是这个可能吗?

有帮助吗?

解决方案

不,我知道但这里是你可以做点什么

增加的另一个列表 更新,列的值的计算列,然后降的计算列

其他提示

Ok,那让我看看如果我得到了这笔直的。你想要列目前的计算,并使它成为一个纯简数据列。通常这会降列但你想要保持数据中列。

  1. 做一个新的表与主键列从你的来源表中所产生的柱。
  2. 复制数据,从你的来源表进入新的表格。
  3. 改变列在您的来源表。
  4. 复制的数据。

不管你做什么我很肯定更改列将下降。这种方法是一个比较复杂,但不是坏,这样可以节省你的数据。

[编辑:@SqlMenace的回答是要容易得多。:)诅咒你的威胁!!:)]

如果你需要保持的列名称(以便不破坏客户的代码),则将需要下列和重新添加一个储存列有相同的名称。你可以这样做没有停机制的变化(沿线的SQLMenace的解决方案)在一个单一的交易。这里的一些伪码:

begin transaction
   drop computed colum X
   add stored column X
   populate column using the old formula
commit transaction
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top