Freigeben über


Verwenden von Variablen in Paketen

Variablen sind eine nützliche und flexible Ergänzung zu Integration Services-Paketen. Sie können kommunikation zwischen Objekten im Paket und zwischen übergeordneten und untergeordneten Paketen bereitstellen. Variablen können außerdem in Ausdrücken und Skripts verwendet werden.

Benutzerdefinierte Variablen und Systemvariablen

Integration Services stellt Systemvariablen bereit und unterstützt benutzerdefinierte Variablen. Wenn Sie ein neues Paket erstellen, einem Paket einen Container oder eine Aufgabe hinzufügen oder einen Ereignishandler erstellen, enthält Integration Services eine Reihe von Systemvariablen für den Container. Systemvariablen enthalten nützliche Informationen zu einem Paket, einem Container, einem Task oder einem Ereignishandler. So enthält z. B. die Systemvariable MachineName zur Laufzeit den Namen des Computers, auf dem das Paket ausgeführt wird, und die Systemvariable StartTime enthält die Uhrzeit beim Start der Paketausführung. Systemvariablen sind schreibgeschützt. Weitere Informationen finden Sie unter System Variables.

Sie können benutzerdefinierte Variablen erstellen und diese in Paketen verwenden. Benutzerdefinierte Variablen können in SSIS auf viele Arten verwendet werden: in Skripts; in den Ausdrücken, die von Rangfolgeeinschränkungen verwendet werden, dem For-Schleifencontainer, der Transformation abgeleiteter Spalten und der Transformation für bedingtes Teilen; und in den Eigenschaftenausdrücken, die Eigenschaftswerte aktualisieren.

So können Sie z. B. eine benutzerdefinierte Variable in der Auswertungsbedingung für den For-Schleifen-Container verwenden. Sie können auch den Enumeratorauflistungswert in einem Foreach-Schleifen-Container einer Variablen zuordnen, und wenn ein Task "SQL ausführen" eine parametrisierte SQL-Anweisung verwendet, können Sie die Parameter für die Anweisung Variablen zuordnen. Weitere Informationen finden Sie unter Integration Services-Variablen (SSIS).

Verwendungsszenarien für Variablen

Variablen werden auf verschiedene Weisen in Integration Services -Paketen verwendet. Sie werden möglicherweise der Meinung sein, dass die Paketentwicklung nicht voranschreitet, bis Sie die benutzerdefinierten Variablen einem Paket hinzugefügt haben, um die benötigte Flexibilität und Verwaltbarkeit der Lösung zu implementieren. Abhängig von dem Szenario, werden die Systemvariablen gemeinsam verwendet.

Eigenschaftsausdrücke Verwenden von Variablen zum Bereitstellen von Werten in den Eigenschaftsausdrücken, die die Eigenschaften der Pakete und der Paketobjekte festlegen. Beispielsweise schließt der Ausdruck SELECT * FROM @varTableName die varTableName -Variable ein, die die SQL-Anweisung aktualisiert, die der Task SQL ausführen ausführt. Der DATEPART("d", GETDATE()) == 1? @[User::varPackageFirst]:@[User::varPackageOther]-Ausdruck aktualisiert das Paket, das der Task Paket ausführen ausführt. Dies erfolgt durch Ausführen des angegebenen Pakets in der varPackageFirst -Variablen am ersten Tag des Monats, und das angegebene Paket in der varPackageOther -Variable wird an anderen Tagen ausgeführt. Weitere Informationen finden Sie unter Verwenden von Eigenschaftsausdrücken in Paketen.

Datenflussausdrücke Verwendet Variablen, um Werte in den Ausdrücken bereitzustellen, die die Transformationen Abgeleitete Spalten und Bedingtes Teilen zum Auffüllen der Spalten verwenden, oder um Datenzeilen an verschiedene Transformationsausgaben weiterzuleiten. Beispielsweise verkettet der @varSalutation + LastName-Ausdruck den Wert in der VarSalutation -Variablen und der LastName -Spalte. Der Income < @HighIncome-Ausdruck leitet Datenzeilen, in denen der Wert der Income -Spalte niedriger ist als der Wert in der HighIncome -Variablen an eine Ausgabe weiter. Weitere Informationen finden Sie unter Transformation für abgeleitete Spalten, Transformation für bedingtes Teilen und Integration Services-Ausdrücke (SSIS).

Rangfolgeneinschränkungs-Ausdrücke Stellen Werte in Rangfolgeneinschränkungen bereit, um zu bestimmen, ob eine ausführbare Datei ausgeführt wird. Die Ausdrücke können entweder gemeinsam mit einem Ausführungsergebnis (Erfolg, Fehler, Beendigung) oder stattdessen mit einem Ausführungsergebnis verwendet werden. Wenn der Ausdruck @varMax > @varMin beispielsweise true auswertet, werden die ausführbaren Dateien ausgeführt. Weitere Informationen finden Sie unter Hinzufügen von Ausdrücken zu Rangfolgeneinschränkungen.

Parameter und Rückgabecode Stellt Eingabeparametern Werte bereit oder speichert die Ausgabeparameter und den Rückgabecode. Dies erfolgt durch Zuordnen der Variablen zu Parametern und Rückgabewerten. Wenn sie beispielsweise die varProductId -Variable auf 23 festlegen und die SELECT * from Production.Product WHERE ProductID = ?-SQL-Anweisung ausführen, ruft die Abfrage das Produkt mit einer ProductID von 23 ab. Weitere Informationen finden Sie unter SQL ausführen (Task) und Parameter und Rückgabecodes im Task „SQL ausführen“.

For-Schleifenausdrücke Stellt Werte bereit, die bei der Initialisierung, bei der Auswertung und bei der Zuordnung von Ausdrücken für die For-Schleife verwendet werden. Wenn zum Beispiel die Variable varCount 2 und varMaxCount 10 ist, der Initialisierungsausdruck @varCount ist, der Bewertungsausdruck @varCount < @varMaxCount ist und der Zuweisungsausdruck @varCount =@varCount +1 ist, dann wird die Schleife 8 Mal wiederholt. Weitere Informationen finden Sie unter For-Schleifencontainerausgewertet wird.

Variablenkonfiguration für übergeordnete Pakete Übergibt Werte von übergeordneten Paketen an untergeordnete Paketen. Untergeordnete Pakete können auf Variablen in übergeordneten Paketen mithilfe der Variablenkonfiguration für übergeordnete Pakete zugreifen. Wenn beispielsweise ein untergeordnetes Paket die gleichen Daten wie das übergeordnete Paket verwenden muss, kann das untergeordnete Paket eine Variablenkonfiguration definieren, die eine Variable angibt, die durch die GETDATE-Funktion in dem übergeordneten Paket festgelegt wurde. Weitere Informationen finden Sie unter Execute Package Task und Package Configurations.

Skripttasks und Skriptkomponenten Stellt eine Liste von schreibgeschützten und Lese-/Schreibvariablen für Skripttasks oder Skriptkomponenten bereit, aktualisiert die Lese/Schreibvariablen innerhalb des Skripts und verwendet dann die aktualisierten Werte innerhalb oder außerhalb des Skripts. Beispielsweise im numberOfCars = CType(Dts.Variables("NumberOfCars").Value, Integer)-Code wird die numberOfCars -Skriptvariable durch den Wert in der NumberOfCars-Variable aktualisiert. Weitere Informationen finden Sie unter Using Variables in the Script Task.

Konfigurationen und Variablen

Zum dynamischen Aktualisieren von Variablen können Sie Konfigurationen für die Variablen erstellen, die Konfigurationen zusammen mit dem Paket bereitstellen und dann die Variablenwerte in der Konfigurationsdatei aktualisieren, wenn Sie die Pakete bereitstellen. Zur Laufzeit verwendet das Paket die aktualisierten Variablenwerte. Weitere Informationen finden Sie unter Erstellen von Paketkonfigurationen.

So fügen Sie benutzerdefinierte Variablen hinzu und ändern oder löschen diese