SQL Server Integration Services-Variablen
Variablen speichern Werte, die von einem SQL ServerIntegration Services-Paket und dessen Containern, Tasks und Ereignishandlern zur Laufzeit verwendet werden können. Die Skripts im Skripttask und die Skriptkomponente können ebenfalls Variablen verwenden. Die Rangfolgeneinschränkungen, mit denen Tasks und Container zu einem Workflow zusammengestellt werden, können Variablen verwenden, wenn ihre Einschränkungsdefinitionen Ausdrücke einschließen.
Variablen in Integration Services-Paketen können für folgende Zwecke verwendet werden:
Aktualisieren der Eigenschaften von Paketelementen zur Laufzeit. Beispielsweise können Sie die von einem Foreach-Schleifencontainer zulässige Anzahl von gleichzeitig ausführbaren Dateien dynamisch festlegen.
Einschließen einer Nachschlagetabelle im Arbeitsspeicher. Beispielsweise kann von einem Paket ein Task SQL ausführen ausgeführt werden, der eine Variable mit Datenwerten lädt.
Laden von Variablen mit Datenwerten und anschließend mit deren Hilfe Angeben einer Suchbedingung in einer WHERE-Klausel. Beispielsweise kann das Skript eines Skripttasks den Wert einer Variablen aktualisieren, die von einer Transact-SQL-Anweisung in einem Task SQL ausführen verwendet wird.
Laden einer Variablen mit einer ganzen Zahl und anschließend Steuern der Schleifen in einer Paketablaufsteuerung mithilfe dieses Werts. Beispielsweise können Sie im Auswertungsausdruck eines For-Schleifencontainers die Iteration mithilfe einer Variablen steuern.
Auffüllen von Parameterwerten für Transact-SQL-Anweisungen zur Laufzeit. Beispielsweise kann ein Paket einen Task SQL ausführen ausführen und anschließend die Parameter einer Transact-SQL-Anweisung mithilfe von Variablen dynamisch festlegen.
Erstellen von Ausdrücken, die Variablenwerte einschließen. Beispielsweise kann die Transformation für abgeleitete Spalten eine Spalte mit dem Ergebnis aus dem Multiplizieren eines Variablenwerts mit einem Spaltenwert auffüllen.
Integration Services unterstützt zwei Arten von Variablen: Benutzerdefinierte Variablen und Systemvariablen. Benutzerdefinierte Variablen werden von Paketentwicklern definiert, und Systemvariablen werden von Integration Services definiert. Sie können so viele benutzerdefinierte Variablen erstellen, wie für das Paket erforderlich sind. Zusätzliche Systemvariablen können jedoch nicht erstellt werden.
Alle Variablen, seien es Systemvariablen oder benutzerdefinierte Variablen, können in den Parameterbindungen verwendet werden, die der Task SQL ausführen zum Zuordnen von Variablen zu Parametern in SQL-Anweisungen verwendet. Weitere Informationen finden Sie unter SQL ausführen (Task) und Arbeiten mit Parametern und Rückgabecodes im Task „SQL ausführen“.
Hinweis |
---|
Bei den Namen von benutzerdefinierten und Systemvariablen wird nach Groß-/Kleinschreibung unterschieden. |
Sie können benutzerdefinierte Variablen für alle Integration Services-Containertypen erstellen: Pakete, Foreach-Schleifencontainer, For-Schleifencontainer, Sequenzcontainer, Tasks und Ereignishandler. Bei benutzerdefinierten Variablen handelt es sich um Elemente der Variables-Auflistung des Containers.
Wenn Sie das Paket mit dem SSIS-Designer erstellen, können Sie die Elemente der Variables-Auflistung im Ordner Variablen auf der Registerkarte Paket-Explorer des SSIS-Designers anzeigen. Die Ordner listen benutzerdefinierte Variablen und Systemvariablen auf.
Es gibt folgende Möglichkeiten, um benutzerdefinierte Variablen zu konfigurieren:
Geben Sie einen Namen und eine Beschreibung für die Variable an.
Geben Sie einen Namespace für die Variable an.
Geben Sie an, ob die Variable ein Ereignis auslöst, wenn ihr Wert geändert wird.
Geben Sie an, ob die Variable schreibgeschützt ist oder Lese-/Schreibzugriff aufweist.
Verwenden Sie das Auswertungsergebnis eines Ausdrucks zum Festlegen des Variablenwerts.
Erstellen Sie die Variable im Bereich des Pakets oder eines Paketobjekts, wie z. B. eines Tasks.
Geben Sie den Wert und den Datentyp der Variablen an.
Die einzige konfigurierbare Option für Systemvariablen ist das Angeben, ob sie ein Ereignis auslösen, wenn sich der Wert ändert.
Ein anderer Systemvariablensatz ist für andere Containertypen verfügbar. Weitere Informationen zu den Systemvariablen, die von Paketen und deren Elementen verwendet werden, finden Sie unter Systemvariablen.
Weitere Informationen zu Szenarien für die Verwendung von Variablen in der Praxis finden Sie unter Verwenden von Variablen in Paketen.
Namespace
Integration Services stellt zwei Namespaces bereit: User und System. Standardmäßig gehören benutzerdefinierte Variablen zum User-Namespace und Systemvariablen zum System-Namespace. Sie können zusätzliche Namespaces für benutzerdefinierte Variablen erstellen und den Namen des User-Namespaces ändern. Es ist jedoch nicht möglich, den Namen des System-Namespaces zu ändern, dem System-Namespace Variablen hinzuzufügen oder Systemvariablen einem anderen Namespace zuzuweisen.
Bereich
Eine Variable wird im Bereich eines Pakets oder im Bereich eines Containers, Tasks oder Ereignishandlers im Paket erstellt. Der Paketcontainer befindet sich ganz oben in der Containerhierarchie. Deshalb verhalten sich Variablen mit Paketbereichsfunktion wie globale Variablen und können von allen Containern im Paket verwendet werden. Entsprechend können Variablen, die im Bereich eines Containers definiert sind, wie z. B. eines For-Schleifencontainers, von allen Tasks oder Containern innerhalb des For-Schleifencontainers verwendet werden.
Falls ein Paket mithilfe des Tasks Paket ausführen andere Pakete ausführt, können die Variablen, die im Bereich des aufrufenden Pakets oder des Tasks Paket ausführen definiert sind, dem aufgerufenen Paket mithilfe des Konfigurationstyps Variable für das übergeordnete Paket zur Verfügung gestellt werden. Weitere Informationen finden Sie unter Paketkonfigurationen.
Wert
Der Wert einer benutzerdefinierten Variable kann ein Literal oder ein Ausdruck sein. Eine Variable enthält Optionen zum Festlegen des Variablenwerts und des Datentyps des Werts. Die beiden Eigenschaften müssen kompatibel sein. Beispielsweise ist das Verwenden eines string-Werts zusammen mit einem integer-Datentyp ungültig.
Falls die Variable so konfiguriert ist, dass sie als Ausdruck ausgewertet wird, müssen Sie einen Ausdruck angeben. Zur Laufzeit wird der Ausdruck ausgewertet, und die Variable wird auf das Auswertungsergebnis festgelegt. Wenn z. B. eine Variable den Ausdruck DATEPART("month", GETDATE()) verwendet, entspricht der Wert der Variablen der Zahl des Monats für das aktuelle Datum. Der Ausdruck muss ein gültiger Ausdruck sein, der die SSIS-Ausdrucksgrammatiksyntax verwendet. Wenn ein Ausdruck mit Variablen verwendet wird, kann der Ausdruck Literale und die Operatoren und Funktionen der Ausdrucksgrammatik verwenden. Der Ausdruck kann jedoch nicht auf die Spalten in einem Datenfluss des Pakets verweisen. Die maximale Länge eines Ausdrucks beträgt 4000 Zeichen. Weitere Informationen finden Sie unter Referenzinformationen zu SQL Server Integration Services-Ausdrücken.
Konfigurieren von Variablen
Eigenschaften können Sie mit dem SSIS-Designer oder programmgesteuert festlegen.
Weitere Informationen zu den Eigenschaften, die Sie im SSIS-Designer festlegen können, finden Sie unter Variablen (Fenster).
Programmgesteuertes Konfigurieren von Variablen
Weitere Informationen zu Variableneigenschaften und zum programmgesteuerten Festlegen dieser Eigenschaften finden Sie unter Variable.
|