比较数据库数据概述

更新:2007 年 11 月

除了比较数据库架构之外,您还可以在具有相同架构的两个数据库之间比较数据。您可以更新目标数据库以匹配源数据库中部分或所有表中的数据。您还可以使用此过程将源数据库与新部署的空数据库比较,并用源数据库的数据填充目标数据库。在此过程中,您首先连接到数据库,比较源数据和目标数据,然后更新目标数据。

例如,数据库管理员可能监控开发团队的数据库项目的生命周期。数据库管理员的部分工作是准备预发布的测试数据库和性能测试数据库。整个项目期间,数据库管理员必须定期同步两个数据库。为了执行此任务,数据库管理员将建立与两个数据库的连接,将预发布数据库设置为源,并使用 Visual Studio Team System Database Edition 比较数据。最后,如有必要,数据库管理员将性能数据库作为目标进行更新。

有关如何比较数据的更多信息,请参见下面的主题:

本节介绍如何使用 Database Edition 来进行数据比较的各个方面。

数据比较要求

Database Edition 对表和视图中的数据进行比较。它要求源数据库中要比较的每个表或视图必须同目标数据库中对应的表或视图具有某些相同的属性:

  • 表和视图必须有相同的名称、相同的所有者和匹配的架构(或结构)。

    表、视图和所有者的名称区分大小写。有关数据库架构的更多信息,请参见如何:比较两个数据库的架构

  • 表必须具有相同的主键、唯一索引或唯一约束。

  • 视图必须具有相同的唯一聚集索引。

  • 只有在具有相同名称的情况下才能将一个表与一个视图进行比较。

    说明:

    不满足这些条件的表和视图不会进行比较,并且不会显示在“新建数据比较”向导的第二页上。

Database Edition 使用键或索引确定对象之间的对应关系。如果源数据库中的某个表或视图与目标数据库中的某个表或视图有多个主键、唯一索引或唯一约束相匹配,您可以在“新建数据比较”向导的第二页上指定将哪一个用于比较。

比较数据库中的数据后,您可以查看结果,然后从源向目标传递数据。有关更多信息,请参见如何:查看数据差异

控制数据比较

可以使用以下方法控制数据比较过程:

  • 您可以通过“选项”对话框配置数据比较和所生成的更新脚本。有关更多信息,请参见如何:设置在比较数据库数据时使用的选项

  • 您可以指定要比较的表或视图。在“数据比较”向导的第一页上,指定要比较的数据库并与之建立连接。您还可以配置要在比较结果中包含的记录。在第二页上,您可以指定数据库中要比较的表的子集。此处的列表中仅显示在两个数据库中具有相同主键、唯一索引或唯一约束的表以及在两个数据库中具有相同唯一聚集索引的视图。

  • 只要比较过程尚未完成,您都可以停止比较。如果您中止了比较过程,数据比较窗口将显示到此时为止参与比较的表和视图的比较结果。您不能在中止点重新启动比较,但您可以刷新比较,从开始处重新启动比较过程。

有关更多信息,请参见如何:比较两个数据库的数据

查看数据比较结果

“数据比较”窗口位于 Visual Studio 的主编辑区域。该窗口显示两个数据库中表和视图的比较结果。对于每个参与比较的对象,将为其显示一个结果和一个建议的更新操作,如下表所述:

结果类型

说明

相同的记录

源对象和目标对象中的所有记录相同。

不同的记录

源对象和目标对象中的一个或多个记录不同。

只在源中

仅在源对象中存在而目标对象中没有的一个或多个记录。

只在目标中

仅在目标对象中存在而源对象中没有的一个或多个记录。

您可以过滤掉不需要的类别,仅显示这些结果的子集。例如,您可以仅显示数据库之间不同的记录,或仅显示目标对象中存在而源对象中没有的记录。“记录视图”窗格按结果类型显示特定数据库对象的结果。有关更多信息,请参见如何:查看数据差异

比较完成后,“数据脚本预览”窗口将显示数据操作语言 (Data Manipulation Language,DML) 脚本,您可以运行该脚本更新目标数据库中的记录。

刷新比较结果

开始比较前,您对其进行配置时将连接到特定的数据库,还可能选择了数据库中要比较的特定对象。通过单击“刷新”,您可以再次使用相同标准比较数据库。此操作显示数据库的当前状态,表明自上次比较以来是否发生过更改。

如果自上次比较后源数据库、目标数据库或这两个数据库添加了表,则新增的表在开始新的数据比较之前不会显示。刷新现有会话将不会读取这些更改。

更新目标数据库中的数据

比较数据后,您可以使用源数据库中的数据更新目标数据库中的数据。您可以更新数据库中的所有对象、仅选择的对象或选择的对象中选择的记录。

“对象”列中选中的复选框指明当您单击“写入更新”后将在目标数据库中更新哪些对象。如果您不希望某个对象的记录写入到目标数据库,请清除该对象的复选框。

有关如何指定要更新的对象和记录的更多信息,请参见如何:同步数据库数据

请参见

其他资源

比较数据库架构概述