Das Problem
Obwohl das Umbenennen von Spalten in SSIS eine ziemlich triviale Angelegenheit ist, macht es durchaus Sinn, sich mit diesem Thema etwas näher auseinanderzusetzen, denn es gibt mindestens 3 Möglichkeiten Spalten umzubenennen, die mir bekannt sind.
Die Lösung
Folgende Möglichkeiten gibt es:
Spalten direkt in der Source umbenennen
Wenn ich Pakete erstelle, benenne ich die Spalten direkt dort um wo sie geholt werden, nämlich in der DataSource. So hantiert man nicht mit verschiedenen Spaltenbezeichnungen für eine Spalte herum sondern nutzt konsequent einen Namen:
Nutzung des erweiterten Editors
Verwandt mit der obigen Methode ist die Verwendung des erweiterten Editors.
Durch einen Rechtsklick auf viele Toolbox-Elemente können deren erweiterte Eigenschaften geöffnet werden. Dort kann dann ein Alias auf die betreffenden Spalten definiert werden.
Das ist ein Weg, den ich auch gerne nutze, da hier ebenfalls keine überflüssigen Spalten entstehen.
Der Nachteil hierbei ist, dass es unübersichtlich werden kann, wenn sich mitten im Datenflusstask plötzlich die Spalten-Bezeichnungen geändert haben.
Toolbox-Element “Abgeleitete Spalte”
Der Entwickler hat hier die Möglichkeit entweder eine vorhandene Spalte zu ersetzen oder umzubenennen (im Bild wurden beide Möglichkeiten angegeben).
Nachteilig ist, dass nach dem Element dann auch die alten Spalten noch sichtbar sind und das Paket wird unübersichtlich. Gerade da ich ja dazu neige nur die Spalten weiterzugeben die auch wirklich benötigt werden.
Auch bin ich der Meinung, dass abgeleitete Spalten wirklich nur dazu eingesetzt werden sollten neue spalten zu erzeugen (wie es der Name auch schon nahelegt).
Toolbox-Element “Union”
Wenn viele Spalten umbenannt werden müssen, kann auch das Toolbox-Element “Union all” benutzt werden. Das sieht dann so aus:
Der Nachteil dieser Lösung ist, dass Spalten die oberhalb des Union-Elements geändert werden, dann aus dem Union-Element gelöscht und neu eingefügt werden müssen.
Je nachdem wie viele Spalten dann geändert wurden, kann das in recht viel Aufwand ausarten.
Fazit
Der Artikel zeigt, dass es in SSIS viele Wege gibt die zum Ziel führen und es immer auf die Situation ankommt welche Weg eingesetzt werden sollte. Selbst über so etwas vermeintlich einfaches wie das Umbenennen einer Spalte sollte man sich vorher Gedanken machen, um sauber SSIS-Pakete zu entwickeln.
Links
[1] http://www.ixto.de/blog/sql-server-2005/integration-services-2005/die-top-4-der-%E2%80%9Espaltenumbenennung-in-ssis%E2%80%9C/