2016-06-16 6 views
8

Używam tablediff narzędzie do transfert danych z baz danych zagrażający źródeł do docelowej bazy danych i otrzymuję wynik posiadający wszystkie różnice między bazami danych źródłowych i docelowych coś takiegotylko coraz oraz niedopasowania źródła danych za pomocą narzędzia 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'  

tak wygenerowany plik sql zawierać delete z Dest. Only wiersze, update z Mismatch wierszy i insert z Src. Only wiersze

Moje pytanie brzmi: Czy istnieje jakiś sposób, z użyciem tablediff, aby uzyskać wyniki tylko w wierszach Mismatch i Src. Only?

+0

Witam, czy nadal potrzebujesz pomocy w tym zakresie? – mvisser

Odpowiedz

4

W końcu polecenia swojej tablediff narzędziowej dodać następujące

-dt -et DiffResults 

ona spadnie istniejącej tabeli z nazwą DiffResults i utworzyć nowy na serwerze docelowym i bazy danych. Następnie możesz wysłać zapytanie do tabeli DiffResults, aby uzyskać żądane wiersze. W moim teście I uruchomić następujące

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

lub

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

trochę więcej szczegółów można znaleźć tutaj - https://technet.microsoft.com/en-us/library/ms162843.aspx

0

Jeśli chcesz użyć wyników z linii poleceń, można wyjście rury z findstr:

tablediff <your parameters> | findstr /i "^Mismatch ^Src" 
Powiązane problemy