我有一个目前正在运行的Web应用程序。 我需要对数据库进行重大修改,现在我需要replace当前的数据库。
我的开发SQL实例不是活的。 我通常只是做一个新的数据库的备份,吹走旧的和恢复我更新的一个。 但现在我有我需要保存的数据。
目前大多数表格已经改变,因为已经增加了额外的列,所有现有的列仍然存在并且不变。
我有权访问Management Studio。
什么是正确的方法来做到这一点?
这样做的“正确方法”是在开发过程中将对数据库的任何更改视为临时性的,并编译数据库构build脚本列表,以便在生产数据库上重新构build新的模式。 您所做的任何更改都应存储在与数据库版本(1.0,1.1,1.2 …)绑定的SQL升级脚本中,或者放在源代码存储库中,以便与您的软件代码一起进行版本控制。 当您想要更新生产数据库时,您将运行更新脚本序列将数据库升级到最新版本。
您可以通过右键单击表或存储过程并select“脚本到”来在Management Studio中处理开发数据库之后生成更改脚本。 这将生成一个alter或create语句,可用于构build您的更新脚本。 完成所有更新脚本之后,将生产数据库复制到开发箱并testing升级以确保一切正常。 然后,当准备好更新实时系统时,请创build备份,然后在生产服务器上运行脚本。
另一种方法是使用正确的模式生成空白数据库,然后将所有数据复制到空白数据库中。 对于一个复杂的模式,这通常很难做,而且这个过程可能需要大量的停机时间,因为使用更新脚本通常可以在最短的停机时间内完成。
有关更多信息,请参阅有关pipe理数据库版本和升级的此问题。