徵狀
當您嘗試使用 Microsoft SQL Server Management Studio 中的 [資料表設計工具] 修改大型表格時,您可能會收到類似以下的錯誤訊息:
-無法修改表格。 超時已過期。 完成作業之前已過的超時期間,或伺服器沒有回應。
原因
之所以會發生此行為,是因為資料表設計工具的事務超時設定與 SQL Server Management Studio 中的資料庫設計工具。 您可以在 [ 事務超時後的時間 ] 方塊中指定此設定。 根據預設,此設定為30秒。請注意,此設定與 SQL Server Management Studio 中的 [ 執行 超時] 方塊中的設定不同。 根據預設,在 SQL Server Management Studio 中,[查詢編輯器] 的 [ 執行 超時] 方塊中的設定為零。 根據預設,Microsoft SQL Server 2000 SQL 查詢 Analyzer 中 [查詢編輯器] 的 [ 查詢超時(秒) ] 方塊中的設定也是零。 因此,查詢編輯器會無限次等待查詢完成且永不超時。
解決方案
若要解決此問題,請使用下列其中一種方法:
-
針對 [資料表設計工具] 和 [SQL Server Management Studio] 中的資料庫設計工具,按一下以清除 [針對資料表設計工具 更新覆蓋連接字串超時值 ] 核取方塊。
-
在 [資料表設計工具] 的 [ 事務超時] 方塊以及 SQL Server Management Studio 中的 [資料庫設計工具] 方塊中,指定一個高設定。
-
在 SQL Server Management Studio 中,使用 [查詢編輯器] 中的 Transact-sql 語句來修改大表。
如需這些設定的詳細資訊,請造訪下列 Microsoft 開發人員網路(MSDN)網站:
狀態
產生此錯誤是系統刻意為之。
其他相關資訊
較大的表格修改可能需要花很長的時間。 這是因為 SQL Server 在您嘗試修改資料表架構時,必須執行下列動作:
-
使用相同的資料表架構建立臨時資料表。
-
將實際資料表中的所有資料複製到臨時資料表中。
-
刪除實際資料表。
-
將臨時資料表重新命名為實際資料表的名稱。