2013-05-12 23 views
2

我試圖列改爲not null在3.5 GB表(SQL Server Express的)不爲空。SQL服務器:更改列在一個非常大的表

所有行包含在表中的值。

我刪除allow null的複選框,然後點擊保存。

我得到:

無法修改表。
超時已過期。操作完成之前超時的時間或服務器沒有響應。

我如何克服這個問題?

回答

3

它可能不直接合作。你需要做的是這樣

首先要在你的表中的非空

UPDATE tblname SET colname=0 WHERE colname IS NULL 

所有空值然後更新表格

ALTER TABLE tblname ALTER COLUMN colname INTEGER NOT NULL 

希望這會解決您的問題。

1

試試這個:

ALTER TABLE tblname ADD CONSTRAINT [DF_tblname_colnamename] DEFAULT (0) FOR colname 
ALTER TABLE tblname ALTER COLUMN colname INTEGER NOT NULL 
0

您也可以增加或覆蓋超時。

  1. 在SQL Server梟雄Studio中,單擊工具 - >選項
  2. 展開「設計師」,並選擇「表格和數據庫設計」左(參見圖)
  3. 從這裏,你必須覆蓋選項超時或增加它:

    • 「後,交易超時:」 增加你的(參見圖)

      OR

    • 取消勾選 「覆蓋連接字符串超時表設計更新值:」

enter image description here

默認的超時時間爲30秒,你可以看到。這些選項記錄在MS Support page here上。