SSIS UNION mit DISTINCT

Leider gibt es im SSIS nur eine UNION ALL Datenflusskomponente. Was aber, wenn man ein UNION (mit DISTINCT) benötigt?

Hierzu gibt es zum Glück einen einfachen Workaround. Man erzeugt zuerst im Datenfluss ein UNION ALL der beiden Resultsets und führt anschliessend eine Sortierung aus. Bei der Sortierung gibt es die Möglichkeit doppelte Zeilen zu eliminieren. Wenn diese Option gewählt ist, erhält man in der Verbindung mit dem UNION ALL das gewünschte Ergebnis, wie beim UNION im T-SQL.

Hier ist der Gesamtüberblick über den Datenfluss, wobei die erste Quelle die Werte A..D liefert (4 Zeilen) und die zweite Quelle liefert die Werte B, C, E. Damit haben wir dort 3 Sätze im Datenfluss.

Die UNION ALL Komponente macht aus den Eingabedaten logischerweise 7 Sätze, wobei wir jetzt die Werte B und C doppelt haben. Nun kommt die Sortierung ins Spiel:

Am Ende der Sortierung erhalten wir nur noch unsere 5 eindeutigen Datensätze.