更新:2007 年 11 月
比较两个数据库中的数据之后,通过更新全部或部分目标与源匹配,可以同步两个数据库中的数据。可以比较两种数据库对象中的数据:表和视图。
同步数据库数据
使用“写入更新”命令更新目标数据
- 比较两个数据库中的数据。有关更多信息,请参见如何:比较两个数据库的数据。 - 比较结束后,“数据比较”窗口列出比较对象的结果。四列(分别名为“不同的记录”、“只在源中”、“只在目标中”和“相同的记录”)显示不相同的对象的信息。对于每一个这样的对象,这些列显示不相同的记录数以及一个更新操作将更改的记录数。这两个数字开始是一致的,但可以在步骤 4 中更改要更新的对象。 - 有关更多信息,请参见比较数据库数据概述。 
- 在“数据比较”窗口的表中,单击一行。 - 详细信息窗格显示所单击的数据库对象中的记录结果。记录在选项卡上按状态分组,可用来指定将从源传播到目标的数据。 
- 在详细信息窗格中,单击名称包含非零 (0) 数字的选项卡。 - “只在目标中”表的“更新”列包含用于选择行的复选框。默认情况下,每个复选框都是选中的。 
- 清除不希望用源数据更新的目标记录的复选框。 - 清除复选框会减少要更新的记录数,显示内容也会根据操作更改。该数字显示在详细信息窗格的状态行和主结果窗格中的对应列中,如步骤 1 下面所述。 
- (可选)单击“导出到编辑器”。 - Transact-SQL (T-SQL) 编辑器窗口打开,并显示将用于更新目标的数据操作语言 (DML) 脚本。 
- 若要同步不同的、缺少的或新的记录,请单击“写入更新”。 .gif) 说明: 说明:- 更新目标数据库时,可以通过单击“停止写入目标”取消该操作。 - 目标中的所选记录的数据用源中对应记录的数据进行更新。 .gif) 说明: 说明:- 选择更新索引视图时,如果“写入更新”操作会在同一个表中插入重复键,则此操作会失败。 
使用 T-SQL 脚本更新目标数据
- 比较两个数据库中的数据。有关更多信息,请参见如何:比较两个数据库的数据。 - 比较结束后,“数据比较”窗口中的一个表列出进行比较的对象。有关更多信息,请参见比较数据库数据概述。 
- (可选)在详细信息窗格中,清除目标中您不希望更新的记录的复选框,如上一过程中所述。 
- 单击“导出到编辑器”。 - 一个新窗口显示 T-SQL 脚本,该脚本将传播匹配目标数据和源数据所必需的更改。新窗口的名称类似于“Server.Database - DataUpdate_Database _1.sql”。 - 该脚本反映您在详细信息窗格中所做的更改。例如,您可能清除了 [dbo].[Shippers] 表的“只在目标中”页中某一给定行的复选框。这种情况下,脚本不会更新该行。 
- (可选)在“Server.Database - DataUpdate_Database _1.sql”窗口中编辑该脚本。 
- (可选,但建议这样做)备份目标数据库。 
- 单击“执行 SQL”或按 F5 更新目标数据库。 .gif) 重要说明: 重要说明:- 默认情况下,更新在一个事务范围内进行。如果出现错误,可以回滚整个更新。可以更改此行为。有关更多信息,请参见如何:设置在比较数据库数据时使用的选项。 - 目标中的所选记录的数据用源中对应记录的数据进行更新。