Freigeben über


Verwenden von Variablen in der Skriptkomponente

Gilt für: SQL Server SSIS Integration Runtime in Azure Data Factory

Variablen speichern Werte, die von einem Paket und dessen Containern, Tasks und Ereignishandlern zur Laufzeit verwendet werden können. Weitere Informationen finden Sie unter Integration Services-Variablen (SSIS).

Sie können vorhandene Variablen für schreibgeschützten oder Lese-/Schreibzugriff mittels eines benutzerdefinierten Skripts zur Verfügung stellen, indem Sie kommagetrennte Listen von Variablen in die Felder ReadOnlyVariables und ReadWriteVariables auf der Seite Skript des Transformations-Editors für Skripterstellung eingeben. Beachten Sie, dass bei Variablennamen nach Groß-/Kleinschreibung unterschieden wird. Mithilfe der Value-Eigenschaft erhalten Sie Lese- und Schreibzugriff auf einzelne Variablen. Die Skriptkomponente führt erforderliche Sperrungen im Hintergrund aus, da das Skript die Variablen zur Laufzeit verarbeitet.

Wichtig

Die Auflistung von ReadWriteVariables ist nur in der PostExecute-Methode verfügbar, um das Risiko von Sperrkonflikten zu vermindern und die Leistung zu maximieren. Sie können daher den Wert einer Paketvariablen nicht direkt inkrementieren, während Sie jede Datenzeile verarbeiten. Inkrementieren Sie stattdessen den Wert einer lokalen Variablen, und legen Sie den Wert der Paketvariablen auf den Wert der lokalen Variablen in der PostExecute-Methode fest, nachdem alle Daten verarbeitet wurden. Sie können auch die Eigenschaft VariableDispenser verwenden, um diese Einschränkung zu umgehen, wie später in diesem Thema beschrieben ist. Wenn Sie jedoch direkt in eine Paketvariable schreiben, während jede Zeile verarbeitet wird, wird die Leistung beeinträchtigt und das Risiko von Sperrkonflikten erhöht.

Weitere Informationen über die Seite Skript im Transformations-Editor für Skripterstellung finden Sie unter Konfigurieren der Skriptkomponente im Skriptkomponenten-Editor und Transformations-Editor für Skripterstellung (Script Page).

Die Skriptkomponente erstellt eine Variables-Auflistungsklasse im ComponentWrapper-Projektelement mit einer Accessoreigenschaft mit starker Typbindung für den Wert jeder vorkonfigurierten Variable, wobei die Eigenschaft denselben Namen wie die Variable selbst hat. Diese Auflistung wird von der Variables-Eigenschaft der ScriptMain-Klasse verfügbar gemacht. Die Accessoreigenschaft bietet entsprechend Lese- oder Lese-/Schreibberechtigung für den Wert der Variable. Wenn Sie beispielsweise eine Ganzzahlvariable namens MyIntegerVariable der Liste ReadOnlyVariables hinzugefügt haben, können Sie ihren Wert mit dem folgenden Code in das Skript abrufen:

Dim myIntegerVariableValue As Integer = Me.Variables.MyIntegerVariable

Für die Arbeit mit Variablen in der Skriptkomponente können Sie auch die VariableDispenser-Eigenschaft (Aufruf mit Me.VariableDispenser) verwenden. In diesem Fall verwenden Sie nicht die benannten, typisierten Accessoreigenschaften für Variablen, sondern greifen direkt auf die Variablen zu. Bei der Verwendung von VariableDispenser müssen Sie die Sperrsemantik und die Umwandlung von Datentypen für variable Werte in Ihrem Code berücksichtigen. Wenn Sie mit Variablen arbeiten möchten, die zur Entwurfszeit nicht zur Verfügung stehen, sondern programmgesteuert zur Laufzeit erstellt werden, müssen Sie die VariableDispenser-Eigenschaft statt der benannten, typisierten Accessoreigenschaften verwenden.

Weitere Informationen

Integration Services-Variablen (SSIS)
Verwenden von Variablen in Paketen