2009-06-10 21 views
1

我的任務是將一個表的列數據類型從smallint更改爲int,以獲取其中有3200萬行的表。要求是儘可能降低停機時間(基本上是達到此目的的最快方式)。 我們正在使用SQL Server 2000.MS SQL Server更改列定義的最快方法

請幫忙!

回答

4

有幾個選項,您可以創建表的在線副本,然後使用sp_rename將其切換出來。

另一種方法是添加一個新列,填充它,然後刪除舊列並重命名新列。

根據行的寬度,可以將32m行視爲大或小。

+1

我非常有信心基準測試會顯示sp_rename是最低的停機時間選項 – 2009-06-10 16:05:37

2

無論您做什麼,都不要使用Enterprise Manager來更改數據類型。它會做的是創建一個全新的表,填充它,重命名舊錶,將新表重命名爲舊錶的名稱,並將其全部放入一個令人討厭的事務中,將表鎖定幾個小時。

相關問題