比较复制表的差异(复制编程)

文章验证用来判断发布服务器和订阅服务器上的表格文章的已发布数据是否不相同,这可能表示非收敛。 有关详细信息,请参阅 “验证复制的数据”。 但是,验证仅返回成功或失败的信息,并且不提供源表和目标表之间差异的信息。 tablediff 命令提示符实用工具返回两个表之间的详细差异信息,甚至可以生成一个 Transact-SQL 脚本,使订阅与发布服务器上的数据趋同。

注释

仅 SQL Server 服务器支持 tablediff 实用工具。

使用 tablediff 工具比较复制表中的差异

  1. 从复制拓扑中任意服务器的命令提示符处,运行 tablediff 实用工具。 指定下列参数:

    • -sourceserver - 已知数据正确的服务器的名称,通常是发布服务器。

    • -sourcedatabase - 包含正确数据的数据库的名称。

    • -sourcetable - 要比较的项目的源表的名称。

    • (可选) -sourceschema - 源表的架构所有者(如果不是默认架构)。

    • (可选)在使用 SQL Server 身份验证连接到发布服务器时使用 -sourceuser-sourcepassword

      重要

      如果可能,请使用 Windows 身份验证。 如果必须使用 SQL Server 身份验证,请提示用户在运行时输入安全凭据。 如果必须在脚本文件中存储凭据,则必须保护该文件以防止未经授权的访问。

    • -destinationserver - 要比较数据的服务器的名称,通常是订阅服务器。

    • -destinationdatabase - 要比较的数据库的名称。

    • -destinationtable - 要比较的表的名称。

    • (可选) -destinationschema - 目标表的架构所有者(如果不是默认架构)。

    • 可选项:在使用 SQL Server 身份验证连接到订阅者时,使用 -destinationuser-destinationpassword

      重要

      如果可能,请使用 Windows 身份验证。 如果必须使用 SQL Server 身份验证,请提示用户在运行时输入安全凭据。 如果必须在脚本文件中存储凭据,则必须保护该文件以防止未经授权的访问。

    • (可选)使用 -c 执行列级比较。

    • (可选)使用 -q 来快速进行仅行数和架构的比较。

    • (可选)指定 -o 的文件名和路径,以将结果输出到文件。

    • (可选)在订阅数据库中指定要在其中插入 -et 结果的表。 如果表已存在,请指定 -dt 以先删除该表。

    • (可选)使用 -f 生成 Transact-SQL 文件以修复订阅服务器上的数据,使其与发布服务器上的数据匹配。 使用 -df 指定每个文件中 Transact-SQL 语句的数目。

    • (可选)使用 -rc-ri 指定重试作和重试间隔的次数。

    • (可选)使用 -strict 在源表和目标表之间强制实施严格的架构比较。

另请参阅

在订阅者处验证数据