2010-01-12 103 views

回答

1

您可以嘗試建立新表,並讓小光標在更小的部分從一個表將數據發送到另一個 表。

如果您的表已經提交日期,你可以通過一年的季度移動數據,所以,你可以 讓到查詢之間的氣息。

+0

我關閉了sql server來取消耗時的數據類型更改過程(這需要很長的時間)。但是現在我又啓動了SSMS,我無法瀏覽數據庫中的表格,並且出現此錯誤:錯誤1222:超出鎖定請求超時期限!我應該等到鎖被釋放嗎? – Meysam 2010-01-12 12:26:02

+0

可能有時,當服務器處於重負載時,有時SSMS不允許瀏覽表格。 – adopilot 2010-01-12 12:33:22

2

刪除該表的任何約束條件,索引和觸發條件也會減慢更新速度。很可能這裏發生了什麼

0

更是SSMS正在創建與舊模式的臨時表中的所有行復制到該表。然後它會創建一個新表,並使用新的模式並將舊錶中的行復制回來。我認爲SSMS中沒有什麼可以設置來改變這一點,它可能是改變這種特定模式的唯一方法。

蘭迪

2

添加新的int的列表,更新新列老列的值,刪除舊列,重命名新列。

我的直覺是,這會更快,但我可能是錯的!

我假設,因爲它是一個浮動剛纔,它沒有任何索引使用。

0

更改表通常比使用SSMS更快。 HOwever在這種情況下,我同意doogstar,因爲你必須將所有的數據轉換爲int,我會創建一個新的列填充它(您可以批量執行以提高性能並避免表鎖),然後刪除舊的列並重命名新的。

+0

如何批量更新一列? – Meysam 2010-01-14 15:52:34

+0

這有點一組爲基礎,循環techinique之間的交叉的,這裏的鏈接,以顯示它如何做到: http://www.tek-tips.com/faqs.cfm?fid=3141 – HLGEM 2010-01-14 18:30:14

相關問題