使用 tablediff 实用程序仅获取源和不匹配数据
Posted
技术标签:
【中文标题】使用 tablediff 实用程序仅获取源和不匹配数据【英文标题】:Getting Source only and mismatch data with tablediff utility 【发布时间】:2016-06-16 13:01:23 【问题描述】:我正在使用 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'
所以生成的sql文件包含delete
Dest. Only
行、update
Mismatch
行和insert
Src. Only
行
我的问题是:有没有办法使用tablediff
来获得只有Mismatch
和Src. Only
行的结果??
【问题讨论】:
您好,您还需要这方面的帮助吗? 【参考方案1】:在您的tablediff
工具命令末尾添加以下内容
-dt -et DiffResults
它将删除一个名为DiffResults
的现有表,并在目标服务器和数据库中创建一个新表。
然后您可以查询DiffResults
表以获取所需的行。
在我的测试中,我运行以下命令
SELECT * FROM DiffResults
WHERE MSdifftool_ErrorDescription in ('Mismatch','Src. Only')
或
SELECT * FROM DiffResults
WHERE MSdifftool_ErrorCode in (0,2) -- 0 is for 'Mismatch'; 1 is for 'Dest. Only' and 2 is for 'Src. Only'
更多细节可以在这里找到 - https://technet.microsoft.com/en-us/library/ms162843.aspx
【讨论】:
【参考方案2】:如果你想使用命令行的结果,你可以用 findstr 管道输出:
tablediff <your parameters> | findstr /i "^Mismatch ^Src"
【讨论】:
以上是关于使用 tablediff 实用程序仅获取源和不匹配数据的主要内容,如果未能解决你的问题,请参考以下文章
Tkinter:获取数据集的单选按钮和查找数据集之间匹配和不匹配的函数