In manchen Situationen ist es sehr praktisch ein SSIS-Paket über eine Stored-Procedure auszuführen. In diesem Artikel wird an Hand eines Beispiels beschrieben, wie ein solches Paket ausgeführt werden kann.
Fangen wir damit an, dass wir zunächst eine Ausführungsumgebung für die Prozedur erzeugen. Dies geschieht mit der Standardprozedur: [SSISDB].[catalog].[create_execution].
Diese Prozedur benötigt bestimmte Parameter und liefert eine eindeutige, generierte ID der Ausführungsumgebung zurück, anhand welcher das SSIS-Paket ausgeführt werden kann.
Folgende Parameter werden für die Ausführung der Prozedur benötigt:
Der folgende Code verdeutlicht das Erstellen der Ausführungsumgebung mit den benötigten Parametern:
Weitere Informationen zu der Standartprozedur [SSISDB].[catalog].[create_execution] sind auf der folgenden Seite zu finden:
http://msdn.microsoft.com/de-de/library/ff878034.aspx
Im zweiten Schritt werden mit Hilfe der generierten ID die Parameter des SSIS-Pakets gesetzt. Für das Setzten der Parameter wird die folgende Prozedur verwendet: [SSISDB].[catalog].[set_execution_parameter_value].
Folgende Parameter werden für die Ausführung der Prozedur benötigt:
Der folgende Code zeigt das Setzen mehrerer Parameter:
Hinweis: In meinem Fall gab es Probleme bei der Verwendung des Typen nvarchar. Nach dem Setzen der sql_variant Variable und Ausführung der Prozedur [set_execution_parameter_value] wurde eine Fehlermeldung für einen ungültigen Typen geworfen. Der SSIS-Parameter hat an dieser Stelle den Typ string. Das Verwenden des Typen nchar in der Stored Procedure war die Lösung für das Problem. Diese erfordert jedoch ein zusätzliches Trimmen der Strings auf der SSIS-Seite.
Weitere Informationen zu der Standartprozedur [SSISDB].[catalog].[set_execution_parameter_value] sind auf der folgenden Seite zu finden:
http://msdn.microsoft.com/de-de/library/ff877990.aspx
Im letzten Schritt wird das SSIS-Paket mit Hilfe der Prozedur [SSISDB].[catalog].[start_execution] ausgeführt.