8
A
回答
9
不,我知道的,但這裏是你可以做
另一列添加到表 更新與計算列的值列然後刪除計算列
1
好的,讓我看看我是否弄清了這個問題。你想獲得一個當前計算的列,並將其設置爲簡單的數據列。通常情況下,這會丟棄列,但您希望將數據保留在列中。
- 使用源表和生成列中的主鍵列創建一個新表。
- 將源表中的數據複製到新表中。
- 更改源表上的列。
- 將數據複製回來。
不管你做什麼,我都很確定改變這個列會丟掉它。這種方式稍微複雜一點,但並不壞,它可以節省您的數據。
[編輯:@SqlMenace的回答要容易得多。 :)詛咒你的威脅! :)]
1
如果您需要保留該列的名稱(以免破壞客戶端代碼),則需要刪除列並添加具有相同名稱的存儲列。通過在單個事務中進行更改(沿着SQLMenace的解決方案的方向),您可以在不停機的情況下執行此操作。這裏有一些僞代碼:
begin transaction drop computed colum X add stored column X populate column using the old formula commit transaction