代码之家  ›  专栏  ›  技术社区  ›  Dan Appleyard

生成更改脚本不一致

  •  0
  • Dan Appleyard  · 技术社区  · 15 年前

    我添加了一个tinyint类型的列,并将其设置为不允许表中有空值,然后生成更改脚本。此时表中有数据。该脚本包含创建临时表并将当前表中的数据插入到中的代码。然后,它删除旧表,并将此临时表重命名为与原始表相同的名称。一切都很好。我的问题是,如果我对另一个表(相同的字段,但不同的表)执行相同的操作,为什么生成更改脚本不包括这个新的表插入代码?

    任何小费都将不胜感激!

    1 回复  |  直到 15 年前
        1
  •  2
  •   Aaron Bertrand    15 年前

    如果表不包含数据,则不需要重新生成表。实际上,如果管理工作室认为仅仅通过修改表不能做到这一点,那么它可以通过这种方式生成脚本,从而在幕后“安全地运行”。根据我的经验,它经常在不需要的时候这样做,但是也有例外…例如,如果添加列 在桌子的“末端”。我建议您熟悉alter table命令,而不是在UI中进行更改并编写脚本。以这种方式重建表在生产系统上可能是灾难性的,通常可以避免。