1

我遇到了一个问题当开发数据库上的某个表添加了更多列时,现在我应该在生产数据库中添加该列。

我尝试通过在表树上添加列手动添加列,但是当我尝试保存时,它向我显示warning

在此处输入图像描述

这是完整的警告信息:

Saving Definition Changes to tables with large amounts of data could take a 
 considerable amount of time. While changes are being saved, 
 table data will not be accessible.

这安全吗?还是有另一种方法可以做到这一点?

更新:我试图点击Yes,但几分钟后它给了我另一个警告说Time Out,这个过程被取消了,是的,生产表中的数据非常巨大

4

3 回答 3

5

要修复它,请转到工具菜单并选择选项,然后在设计器下选择表和数据库设计器,第一个选项允许您禁用超时,或使其大于默认的 30 秒。

参考:http ://surf11.com/entry/197/saving-table-times-out-in-sql-server-200

于 2013-07-12T08:12:36.330 回答
1

基本上这意味着 SQL 服务器将检查表中的所有记录(在磁盘上)并更改它们。这是一个需要大量 IO 的操作,并且会将您的表锁定为读/写。

其他需要考虑的是您的数据库超时,如 http://social.msdn.microsoft.com/Forums/sqlserver/en-US/7d46b158-a089-48c9-8153-53c5ed116d37/sql-2005-updating-table-definition中所述-with-large-amounts-of-data-timeout

这是相对安全的(除了锁定问题),并且在您将使用的任何方法中都是如此(可能没有漂亮的 UI 警告)。

于 2013-07-12T07:52:25.417 回答
1

设置超时执行时间有两个选项

1.工具>选项>设计器>事务超时后

设置大于 30 秒的值。(最大 65536)这将解决该问题

但还有另一种选择

2.工具>选项>查询执行>执行超时

一般来说,这不是问题,因为默认值已经是 0(无限制),但是如果您在那里看到不同的值,请检查它并将其修复为 0。

它是完全安全的,没有数据损坏的可能性。

于 2018-09-10T15:08:53.880 回答