我正在尝试使用 SSMS 向 SQL Server 2005 中包含大量数据的表中添加一列。
因此,我浏览表格,选择“修改”,然后添加新列。然后,当我按“保存”时,我收到以下警告:
保存定义对包含大量数据的表的更改可能需要相当长的时间。保存更改时,表数据将无法访问
我同意,数据库处于离线状态并且我有足够的时间,因此我按了“是”。
然而,操作在大约 30 秒后超时并显示以下消息:
无法修改表。超时已到期。操作完成前已超时或服务器未响应。
然后,当我按“确定”时:
用户取消保存对话框(MS Visual Database Tools)
我不明白。我在 SSMS 连接对话框中和“工具”->“选项”->“查询执行”->“SQL Server”下都将执行超时设置为 0(无限)。如果只是忽略它,那么设置执行超时有什么意义呢?
有人知道这里使用的超时值是多少,以及如何设置它?
答案1
听起来像是超时设置。所以你的 SSMS 认为它花费的时间太长并为你取消了连接。SQL 服务器角色恢复。但有帮助。你不是第一个遇到这种情况的人。
看这里。
对于不想点击链接的每个人来说,以下是获奖答案:
在遇到同样的错误后,我偶然发现了正确的设置。
在 Management Studio 中,从“工具”菜单中选择“选项”,然后单击“设计器”。有一个名为“覆盖表设计器更新的连接字符串超时值:”的选项,在“事务超时后:”框中,您将看到神奇的 30 秒
答案2
//请执行下列操作:
打开 SQL Server 管理工作室-->工具菜单-->选项-->设计器选项卡-->表和数据库设计器-->将超时时间从 30 秒增加到 65535 秒-->确定
//现在您可以保存表格更改。//希望有所帮助,并查看我的博客@://www.ogolla.blogspot.com
答案3
答案4
SSMS 不应用于一般数据修改。熟悉 T-SQL 并按照以下建议添加列。
ALTER TABLE 表名 ADD 新列 INT
SSMS 实际上是创建一个包含所有列的新表,将数据导入新表并删除旧表。即使您有充足的时间,如果有有效的方法,您也应该使用正确的方法。为了避免这种混乱,据我所知,SQL Server 2008 不允许使用 GUI 方法。