2016-06-16 17 views
8

Ich verwende das tablediff Dienstprogramm, um Daten von Servaldatenbankquellen in eine Zieldatenbank zu übertragen, und ich erhalte ein Ergebnis mit allen Unterschieden zwischen der Quell- und der Zieldatenbank mit so etwasAbrufen von nur Quell- und Mismatch-Daten mit dem Dienstprogramm tablediff

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'  

so die erzeugte sQL-Datei enthalten delete die Dest. Only Reihen, update die Mismatch Zeilen und insert die Src. Only Reihen

Meine Frage ist: gibt es eine Möglichkeit mit 012.314., um das Ergebnis von nur Mismatch und Src. Only Reihen zu erhalten?

+0

Hi brauchst du noch Hilfe dabei? – mvisser

Antwort

4

Am Ende Ihres tablediff Werkzeug Befehl fügen Sie folgendes

-dt -et DiffResults 

Es wird mit dem Namen DiffResults eine vorhandene Tabelle löschen und eine neue in dem Zielserver und Datenbank erstellen. Dann können Sie die Tabelle DiffResults abfragen, um die gewünschten Zeilen zu erhalten. In meinem Test betreibe ich die folgende

SELECT * FROM DiffResults 
WHERE MSdifftool_ErrorDescription in ('Mismatch','Src. Only') 

oder

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

einige weitere Details finden Sie hier - https://technet.microsoft.com/en-us/library/ms162843.aspx

0

Wenn Sie die Ergebnisse verwenden, von der Kommandozeile möchten, können Sie Rohrausgang mit findstr:

tablediff <your parameters> | findstr /i "^Mismatch ^Src"