• SQL Server 2008中的“阻止保存要求重新创建表的更改”


         当在SQL Server 2008中建好一张表后,如果要在Management Studio中修改表结构,十有八九会弹出“阻止保存要求重新创建表的更改”,恼人得很。根据我的使用,除了改列名或者删除列才有可能不弹出该提示,其它很多情况都会跳出这个该死的提示,样子如图:

         解决的方法其实也很简单:在Management Studio里找菜单栏上的“工具”然后点击下面的选项,在出现的下面的这个界面中展开“设计器”项,选中“表设计器和数据库设计器”,然后去掉“ 阻止保存要求重新创建表的更改”前面的勾就行了,如图:

         究其原因,应该是某些DDL会改变存储的物理结构,因此需要重新构建该表。SQL Server在改变物理结构都变动的表结构时会先将数据移到暂存表中,然后Drop掉原先的表,再建立一张新的符合要求的表,之后又把刚才暂存表中的数据复制回来,最后再删除暂存表。由此可见,这个过程极有可能会十分耗时,这将会导致该表长时间不能被访问,Stuido的守候sessions将会超时出错。为了避免出现这种错误,微软的做法就是在默认的情况下不允许表的物理结构发生变动。

         看来应该是微软一时半载也想不出如何解决这个问题,于是就用“砍脚趾避沙虫”的愚蠢方法将就着解决这个问题。其实微软为什么不能人性化点,如果变动的表是空表或者是少于100条记录的表就不再提示那不好些么?我想,会改动表结构的情况一般是在开发的时候,真正生产了就算改动也会编程用ALERT TABLE语句,所以人性化点不会有太大的坏处。

  • 相关阅读:
    Codeup
    IDEA基于Maven Struts2搭建配置及示例
    深入理解HTTP协议、HTTP协议原理分析
    25条提高iOS App性能的技巧和诀窍
    怎么在苹果Mac虚拟机上安装Win7
    app让个别界面横屏,其他的为竖屏,解决如下
    设置控制器,出现默认知道空隙
    论项目采购管理
    hybrid app
    iOS中使用 Reachability 检测网络
  • 原文地址:https://www.cnblogs.com/Libra/p/1344841.html
Copyright © 2020-2023  润新知