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文件包含delete的Dest. Only行,update所述Mismatch行和insert所述Src. Only列
我的问题是:有没有办法使用tablediff只获得结果Mismatch和Src. 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