快速业务通道

SQL Server 2008重新创建表的方法

作者 佚名技术 来源 数据库编程 浏览 发布时间 2012-03-21
我们讨论的这个警告信息显示如下,当我试着更改AdventureWorks数据库表[GroupName]字段的"Allow Nulls"设置时,下面的警告产生了。

  不允许保存更改。你所作的这些更改要求删除并且重新创建下面的表。你只能对表进行不能重新创建的更改或者启用这个选项来防止保存要求对表重新创建的更改。

  

  图一

  我具有在这张表上执行DDL语句的权限,而在这张表上也没有阻止它重新创建的锁。因此唯一的原因应该是"or enabled the option PRevent Saving changes that require the table to be re-created"的信息部分。

  因此让我们看看这个选项,接着看看一些要求重新创建表并且与通过SSMS进行更改有关的潜在威胁类型。

  从菜单中选择“工具”然后选择“选项…”

  

  图二

  点击页面左边的"Designers"

  

  图三

  上面的标记选项在检查时防止在SSIS中要求重新创建表的任何更改。默认情况下,这个选项是检查的。如果它允许你通过要求对表重新建立的SSMS来做任何改变,那么你可以不检查它。一旦这个选项设为未检查的,那么你讲不能得到一个要求表重新创建的更改以及执行你的更改的警告信息。

  要求重新创建表的一些情况是:

  修改一个字段的数据类型

  在一张表的最后一个字段之前在任何一个地方插入一个字段

  修改一个计算列的计算列表达式

  修改一个计算列的persistence属性

  修改一个字段的identity属性

  修改一个字段的NULL属性

  对表中的字段重新排序

  重要的是要了解通过SSMS进行更该会带来一些后果。微软强烈建议不要关闭这个选项。你可能会经历与该表相关的信息缺失甚至在某些情况下会缺失数据。作为信息相关缺失的例子,微软支持提出如果更改跟踪功能可用的话,那么可以使用与表相关的更改跟踪。如果这张表也包含大量的数据,那么重新创建表可能会导致超出操作时间从而无法完成该过程。

  同时考虑到微软的建议,您最好启用这个选项。但是在某些情况下,禁用这个选项会使你更好地利用SSMS设计器进行工作。这些情况是:你在测试环境中工作。

  要求进行一些不能通过T-SQL的操作。例如,在其它字段的中间插入一个新的字段。在这样的案例中,正确分析这些表的任何问题/损失作为重新创建表的结果。

  你确定没有相关的数据,例如与你任何一张表有关的更改跟踪数据。

  你确定硬件具有足够的空间来避免任何超时的操作。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号