.

Ausführen von SSIS-Paketen über eine Stored-Procedure in SQL 2012

Veröffentlicht am 13.11.2012 | Lesezeit 2 Min.

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:

SSIS

Der folgende Code verdeutlicht das Erstellen der Ausführungsumgebung mit den benötigten Parametern:

SSIS

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:

SSIS
SSIS

Der folgende Code zeigt das Setzen mehrerer Parameter:

SSIS


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.

SSIS