在这个窗口中我们可以选择我们想要进行数据比较的对象。如果你想要排除任何对象,将“表”点开,取消你想要排除的项目。点击“完成”按钮开始比较。
比较的结果如下所示
比较结果窗口包含三部分,但默认情况下,我们只能看到2部分。第一部分显示了被选中的每个对象,及该对象在各个类型下的记录数。例如,结果显示在2个数据库的"dbo.DatabaseLog"中,有451条相同记录。因为被选择的2个数据库完全相同,所以我们除了在“相同记录”中看到有值之外,其他列都没有值。
第二部分显示与选择行(对象)相关的信息。她是一个带标签的表,有4个标签,每个标签代表第一部分的一列。“不同记录”这个标签下的表格有两列,分别代表源和目标库中的数据列,其它标签下的表格都是单一列。如果点击“相同记录”标签,你将看到选择对象的所有记录。
因为目标库中没有数据需要更新,所以2个按钮“写入更新”和“导出到编辑器”都是不可用的。这两个按钮主要用来更新目标数据库。“写入更新”按钮表示直接更新数据库,而“导出到编辑器”则是将更新的脚本导出到独立的编辑器中,以方便修改和执行。
经上所述,我们已经熟悉了做数据比较的方法。接下来我们继续讨论,看看那些修改是如何通过“数据比较功能”被反应出来的。
比较键
为了进行数据比较,Data Dude需要一个拥有唯一值的列。如果表中没有这样的唯一键,它就不会被列入第二部分的“新数据比较”,也就不会被列入比较的行列。所以,请务必记得,一个唯一的键是数据比较所必需的。
如果一个表拥有不止一个的唯一键,这些键都会在“比较键”的下拉菜单中显示出来。Data Dude会自动选择第一个键作为比较的主键。但你也可以按照你的要求自己选择。下面的脚本将在2个数据库中创建一个表,并说明结果是如何在第二部分显示的。
| 以下是引用片段: use AdventureWorks go create table TestTable (Column1 int primary key not null, Column2 varchar(100)) go create unique index IX_TestTable on TestTable (Column2) go insert into TestTable values (1, 'Value1') insert into TestTable values (2, 'Value2') go use AdventureWorksTemp go create table TestTable (Column1 int primary key not null, Column2 varchar(100)) go create unique index IX_TestTable on TestTable (Column2) go |
一旦执行脚本,开始一个新的数据比较,结果将在第二部分显示如下。
图中显示了主键和唯一键。我不能确定改变比较键是否能影响操作或者性能。但是我知道,选择聚簇索引能提高数据比较的性能。


