仅使用tablediff实用程序获取源和数据不匹配

Bil*_*dan 8 sql-server comparison data-synchronization

我正在使用tablediff实用程序将数据从serval数据库源传输到目标数据库,我得到的结果是源数据库和目标数据库之间的所有差异都是这样的

Dest. Only  N'1027' N'799'  N'91443'    N'1'    
Mismatch    N'103A' N'799'  N'13010'    N'1'    DATE_CURRENT DATE_OPERATION MATRICULE_UTILISATEUR QTE QTE_FINAL QTE_INIT QTE_OPERATION REFERENCE_DOCUMENT TYPE_DOCUMENT 
Src. Only   N'103A' N'310'  N'30129'    N'1'    
Run Code Online (Sandbox Code Playgroud)

所以生成的SQL文件包含deleteDest. Only行,update所述Mismatch行和insert所述Src. Only

我的问题是:有没有办法使用tablediff只获得结果MismatchSrc. Only行?

小智 5

在您的tablediff工具命令末尾添加以下内容

-dt -et DiffResults
Run Code Online (Sandbox Code Playgroud)

它将删除具有名称的现有表,DiffResults并在目标服务器和数据库中创建一个新表。然后,您可以查询DiffResults表以获取所需的行。在我的测试中,我运行以下命令

SELECT * FROM DiffResults
WHERE MSdifftool_ErrorDescription in ('Mismatch','Src. Only')
Run Code Online (Sandbox Code Playgroud)

要么

SELECT * FROM DiffResults
WHERE MSdifftool_ErrorCode in (0,2) -- 0 is for 'Mismatch';  1 is for 'Dest. Only' and 2 is for 'Src. Only'
Run Code Online (Sandbox Code Playgroud)

一些更多详细信息可以在这里找到-https: //technet.microsoft.com/zh-cn/library/ms162843.aspx