2016-06-04 14 views
1

Ich habe zwei Datenbanken in zwei verschiedenen SQL-Servern (Server A und Server B) und ich versuche, eine MERGE Join in SSIS auf einem ausführen gemeinsame Spalte namens "Name". Ich habe die zwei Tabellen nach "Name" sortiert und ich habe den SortKey als 1 für "Name" -Spalte in den beiden Quell-OLE DB-Ausgabeeigenschaften festgelegt. Ich wählte dann die Spalten aus beiden Tabellen aus, um INNER Join anzuzeigen und zu verwenden, und wählte eine leere Zieltabelle (mit beiden Spaltennamen von den zwei Quellservern) in Server C als Ziel-OLE DB-Server aus. Alles sieht gut aus und das Paket wird erfolgreich ohne Fehler und Warnungen ausgeführt.SSIS Merge Join auf zwei verschiedenen DB in verschiedenen SQL-Servern wird nicht alle Zeilen

Aber von 542 Reihen passen nur 35 Zeilen und es sollte 405 übereinstimmen. Wenn ich LEFT JOIN in Merge Join-Transformation angeben, bekomme ich 542 Zeilen mit 507 Zeilen mit NULL-Werten von Server B (was wiederum bedeutet, dass es gefunden wird eine Übereinstimmung nur für 35 Zeilen und nicht alle 405).

Haben versucht, RTRIM in Name Spalte aus beiden Quellen ohne Erfolg zu verwenden. Haben Sie versucht UPPER Fall mit auf Namensspalte aus beiden Quellen ohne Erfolg auch :(

ich nicht dieses Problem, wenn ich JOINS Sie auf gleiche 2 Datenbanken in Powershell mit Invoke-SqlCommand, aber wenn ich tun SSIS Art und Weise, es JOINS nur auf 35 Reihen.

Kann jemand vorschlagen, was das Problem sein könnte?

Antwort

2

das Problem gefunden werden. die beiden Quellentabellen nicht sortiert wurden, so hatte ich eine SQL-Anweisung schreiben ORDER BY Name auf beiden Quellen und es funktionierte perfekt. Hoffe es hilft jemandem!

+0

Cool! Ich dachte, SSIS lässt Sie Merge nicht verwenden Beitreten, wenn Sie keinen Sortieroperator verwenden! – FLICKER

+0

@FLICKER Sie wählen Sortierschlüssel in Quellentabelle, aber wenn Ihre Tabelle nicht sortiert ist oder wenn Sie SQL-Anweisung für die Eingabe verwenden, musste ich "ORDER BY " hinzufügen, obwohl ich den Sortierschlüssel angegeben hatte. –

Verwandte Themen