2010-04-29 67 views
0

我有一張包含超過6千萬條記錄的大型表,我想爲數據遷移目的添加2個新列。桌子上有索引,其中一些很大。因此,通過在表格中添加2個新列,我會冒着放慢數據庫的風險,同時嘗試添加它們,也許會超時?或者它會工作嗎?向包含實時數據的表添加新列

我知道,如果我嘗試重新排列列,SQL Server會要求我刪除並重新創建表,所以我絕對不希望這樣。這是每個人都面臨的挑戰嗎?

回答

1

我們在更大的表上對列和索引的更改也有同樣的問題。

我會簡單地使用ALTER TABLE添加列。列順序雖然很好,但是無關緊要。

如果列是無效的,它們的時間是合理的。如果你想添加一個默認值並將它們設置爲NOT NULL,那麼這顯然更有用。但是,我會考慮將其添加爲NOT NULL,然後設置爲一個值,然後更改爲NOT NULL,以便在不同的時間執行3個步驟。我們這樣做是爲了減少我們需要的時間窗口,即使整個過程的故事時間更長

+0

這太棒了:o)這些列純粹是爲了數據遷移,一旦我們完成了它們,將它們刪除是否明智? – 2010-04-29 12:35:23

+0

@阿德曼:是的...... – gbn 2010-04-29 12:58:27

相關問題