作为数据库管理员,您可能需要频繁将在一个数据库环境中进行的更改迁移到另一个数据库环境。例如,您可能需要将对大型开发数据库进行的更改提升到正式测试数据库。
下表显示了将更改从一个数据库环境迁移到另一个数据库环境的过程。
图 1. 将更改从一个数据库环境迁移到另一个数据库环境的过程
此迁移更改的任务需要您确定两个数据库环境之间的差异,并仅更改那些不同的对象。在某些情况下,确定差异可能很容易,例如仅添加了一张新表的情况。而在另一些情况下,确定差异可能要复杂得多,例如对多张表进行了大量更改,表已添加或删除,以及主键或外键已更改等情况。
您可以使用三种不同的方法来将更改从一个数据库迁移到另一个数据库:
- 复制粘贴方法
- 如果已经识别到差异,确信这些更改是要迁移的更改,并且无需详细分析差异,请使用复制粘贴方法。使用复制粘贴方法时,“比较编辑器”不会显示。在“管理资源管理器”或“对象列表”中将对象从一个数据库复制粘贴到另一个数据库时,将显示“更改管理脚本编辑器”,并且更改会立即迁移到要更改的数据库。
要点: 复制粘贴方法是唯一支持将对象和数据从同一数据库的一个模式复制到另一个模式的方法。
注: 此外,复制粘贴方法也是唯一允许指定是否还要复制选定对象所需对象的方法。缺省情况下,其他复制方法会将必需对象一起复制。例如,假定表 A 依赖表 B,而表 B 依赖表 C。当复制表 A 并选中复制必需对象复选框时,还会复制表 B,但不会复制表 C。
- 拖放方法
- 如果已经识别到差异,确信这些更改是要迁移的更改,无需详细分析差异,并且希望只移动结构差异,请使用拖放方法。使用拖放时,数据不会保留。例如,如果将表从一个数据库迁移到另一个数据库,在迁移该表中时,其中的数据不会保留。
- 比较方法(比较编辑器)
- 如果更改比较复杂并且需要仔细确定两个数据库环境之间的差异,建议使用比较方法。使用比较方法,将显示“比较编辑器”。包含要迁移到其他数据库的更改的源数据库的模型将显示在编辑器的左侧。更改要迁移到的目标数据库的模型将显示在编辑器的右侧。您可以向下钻取更改,并仅选择要应用的更改。
要点: 如果更改源是物理数据模型或 DDL 脚本文件,而不是数据库连接,那么必须使用比较方法。
使用其中任一方法,要更改的对象都将显示在“更改管理脚本编辑器”中,您可以在其中生成、定制并运行更改命令,从而对数据库进行实际更改。