这个目前在sql server上,我觉得最好的办法,还是测试优先。在实际使用中的其它方法,都会有这样那样的问题。测试优先,可以让问题在扩大化之前,进行有效解决。 对应实际的生产环境的影响也较小。这里的测试,不仅仅是测试库中的完整测试,也包括在运行环境下的先导测试。参考!

解决方案 »

  1.   

    1 Alter table alter column 每次只能修改一个字段,如果修改多个字段?
    --> 修改多个字段时需多写几个alter table alter column语句..2 Alter table 原理是什么?
       像MYSQL 大致是先复制到临时表,删除原表,然后重命名, SQL Server呢?
    --> SQL Server的alter table语句包含很多功能,如新增字段,修改字段数据类型,长度,修改表约束等.
         其执行原理各不相同.3 对于生产库 上的 DDL 操作,有什么好的优化方式 ?
    --> 在系统闲时执行.
      

  2.   

    1、修改表的结构 一般  很少涉及 到 原来的数据 , 想添加 字段  和删除字段,添加字段的长度也是一样的。
          有的 需要调整数据 , 也会  缓存执行。就是 在系统不忙的情况下修改。2、alter tabe 原理  得看具体动作, 添加约束, 删除索引 。 修改的的构架
          第一约束,  定义 表的逻辑约束   , 删除索引   , 根据删除 数据表的原来 。 删除对象的时候  标注  。 在系统删除的时候删除。
    但是  删除有时  会缓存两个数据页。3、ddl 一般是  不优化 。
      

  3.   

    谢谢大家的回复,
    OrchidCat 
    http://technet.microsoft.com/zh-cn/library/ms190273(v=sql.105).aspx 这里没有介绍底层实现,ap0405140
    2 Alter table 原理是什么?
       像MYSQL 大致是先复制到临时表,删除原表,然后重命名, SQL Server呢?
    --> SQL Server的alter table语句包含很多功能,如新增字段,修改字段数据类型,长度,修改表约束等.
         其执行原理各不相同.哪里可以获取他们的原理?
      

  4.   

    就比如修改一个字段类型,从int 变成 bigint, 先做什么后做什么 ?