我有一个问题,当开发数据库的一些表有增加了更多的列,现在我应该在生产数据库中添加列。
我尝试在表树手动添加列,通过添加列,但是当我试图挽救,它给我一个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
,过程取消,是在生产表中的数据完全是巨大的
基本上,这意味着,在SQL服务器将遍历所有的表中的记录(上盘),并改变它们。 这是一个会占用大量的IO,将你的表锁在读/写操作。
别的东西要考虑的是你的数据库超时在提到http://social.msdn.microsoft.com/Forums/sqlserver/en-US/7d46b158-a089-48c9-8153-53c5ed116d37/sql-2005-updating-table-definition -with-大量-的数据超时
这是比较安全的(除了锁定问题),并会在你将使用(也许没有很好的用户界面警告)的任何方法的情况。
为了解决这个问题,转到工具菜单 ,选择选项 ,然后根据设计选择表和数据库设计的第一个选项可以让你禁用超时,或使其比默认为30秒的值。
参考: http://surf11.com/entry/197/saving-table-times-out-in-sql-server-200
这里是集超时执行时间的两种选择
1.工具>选项>设计师>交易超时后
超过30秒设定更大的值。 (最大值65536)这将解决这个问题
但还有一个选项
2.工具>选项>查询执行>执行超时
Generaly因为默认值为0(无限制)这不是职高问题,但已经检查并修复它为0,如果你看到不同的价值存在。
它是完全安全的,没有possibilty腐败的数据。