本文可帮助你解决尝试在 SQL Server Management Studio 中使用表设计器修改大型表时出现的问题。
原始产品版本:SQL Server
原始 KB 数: 915849
现象
尝试在 MICROSOFT SQL Server Management Studio 中使用表设计器修改大型表时,可能会收到类似于以下内容的错误消息:
无法修改表。
超时时间已到。 超时时间在操作完成或服务器没有响应之前已过。
原因
发生此行为的原因是表设计器和 SQL Server Management Studio 中的数据库设计器的事务超时设置。 可以在“事务超时后”框中指定此设置。 默认情况下,此设置为 30 秒。
注意
此设置不同于 SQL Server Management Studio 中执行超时框中的设置。 默认情况下,SQL Server Management Studio 中查询编辑器的执行超时框中的设置为零。 默认情况下,SQL Server 2000 SQL Query Analyzer 中查询编辑器的查询超时(秒)框中的设置也为零。 因此,查询编辑器无限地等待查询完成,并且永远不会超时。
解决方法
若要解决此行为,请使用以下方法之一:
单击可清除表设计器更新复选框和 SQL Server Management Studio 中数据库设计器的“替代连接字符串超时值”。
在 “事务超时” 框中为表设计器和 SQL Server Management Studio 中的数据库设计器指定高设置。
通过在 SQL Server Management Studio 中的 查询编辑器 中使用 Transact-SQL 语句修改大型表。
有关这些设置的详细信息,请参阅选项(设计器 - 表和数据库设计器页)。
Status
此行为是特意这样设计的。
更多信息
大型表的修改可能非常耗时。 这是因为在尝试修改表架构时,SQL Server 必须执行以下操作:
- 创建具有相同表架构的临时表。
- 将实际表中的所有数据复制到临时表。
- 删除实际表。
- 将临时表重命名为实际表的名称。