如何:同步数据库数据

更新:2007 年 11 月

比较两个数据库中的数据之后,通过更新全部或部分目标与源匹配,可以同步两个数据库中的数据。可以比较两种数据库对象中的数据:表和视图。

同步数据库数据

使用“写入更新”命令更新目标数据

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

    比较结束后,“数据比较”窗口列出比较对象的结果。四列(分别名为“不同的记录”、“只在源中”、“只在目标中”和“相同的记录”)显示不相同的对象的信息。对于每一个这样的对象,这些列显示不相同的记录数以及一个更新操作将更改的记录数。这两个数字开始是一致的,但可以在步骤 4 中更改要更新的对象。

    有关更多信息,请参见比较数据库数据概述

  2. 在“数据比较”窗口的表中,单击一行。

    详细信息窗格显示所单击的数据库对象中的记录结果。记录在选项卡上按状态分组,可用来指定将从源传播到目标的数据。

  3. 在详细信息窗格中,单击名称包含非零 (0) 数字的选项卡。

    “只在目标中”表的“更新”列包含用于选择行的复选框。默认情况下,每个复选框都是选中的。

  4. 清除不希望用源数据更新的目标记录的复选框。

    清除复选框会减少要更新的记录数,显示内容也会根据操作更改。该数字显示在详细信息窗格的状态行和主结果窗格中的对应列中,如步骤 1 下面所述。

  5. (可选)单击“导出到编辑器”。

    Transact-SQL (T-SQL) 编辑器窗口打开,并显示将用于更新目标的数据操作语言 (DML) 脚本。

  6. 若要同步不同的、缺少的或新的记录,请单击“写入更新”。

    说明:

    更新目标数据库时,可以通过单击“停止写入目标”取消该操作。

    目标中的所选记录的数据用源中对应记录的数据进行更新。

    说明:

    选择更新索引视图时,如果“写入更新”操作会在同一个表中插入重复键,则此操作会失败。

使用 T-SQL 脚本更新目标数据

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

    比较结束后,“数据比较”窗口中的一个表列出进行比较的对象。有关更多信息,请参见比较数据库数据概述

  2. (可选)在详细信息窗格中,清除目标中您不希望更新的记录的复选框,如上一过程中所述。

  3. 单击“导出到编辑器”。

    一个新窗口显示 T-SQL 脚本,该脚本将传播匹配目标数据和源数据所必需的更改。新窗口的名称类似于“Server.Database - DataUpdate_Database _1.sql”。

    该脚本反映您在详细信息窗格中所做的更改。例如,您可能清除了 [dbo].[Shippers] 表的“只在目标中”页中某一给定行的复选框。这种情况下,脚本不会更新该行。

  4. (可选)在“Server.Database - DataUpdate_Database _1.sql”窗口中编辑该脚本。

  5. (可选,但建议这样做)备份目标数据库。

  6. 单击“执行 SQL”或按 F5 更新目标数据库。

    重要说明:

    默认情况下,更新在一个事务范围内进行。如果出现错误,可以回滚整个更新。可以更改此行为。有关更多信息,请参见如何:设置在比较数据库数据时使用的选项

    目标中的所选记录的数据用源中对应记录的数据进行更新。

请参见

任务

如何:比较两个数据库的数据

演练:比较两个数据库的数据

概念

Database Edition 术语概述