SQL Server 中的超时保存表

SQL Server 中的超时保存表

我正在尝试使用 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

尽管我添加了索引而不是更改了列,但这个答案在 Google 中出现了。

有一种更好的方法来进行长期运行的更改:

  1. 对表格设计进行所需的更改。不要按“保存”。

  2. 在 SSMS 中单击表设计器...然后生成更改脚本...

SSMS 点击表设计器,生成更改脚本

  1. 在窗口中您将看到一个脚本,该脚本在执行时将执行您在设计器中排队的更改。

更改脚本

  1. 您可以在 SMSS 中保存并运行该脚本,或者当您有信心时,您可以将脚本从该窗口“复制”到剪贴板上。对保存文件说“不”。然后​​关闭设计器而不保存(技术上会丢失您的数据库更改)并打开一个新的查询窗口。粘贴更改脚本,然后执行脚本。即使需要数年时间,您的更改也将应用于数据库。

答案4

SSMS 不应用于一般数据修改。熟悉 T-SQL 并按照以下建议添加列。

ALTER TABLE 表名 ADD 新列 INT

SSMS 实际上是创建一个包含所有列的新表,将数据导入新表并删除旧表。即使您有充足的时间,如果有有效的方法,您也应该使用正确的方法。为了避免这种混乱,据我所知,SQL Server 2008 不允许使用 GUI 方法。

相关内容