Systemvariablen
SQL Server Integration Services stellt eine Reihe von Systemvariablen bereit, mit denen Informationen zum ausgeführten Paket und dessen Objekten gespeichert werden. Diese Variablen können in Ausdrücken und Eigenschaftsausdrücken verwendet werden, um Pakete, Container, Tasks und Ereignishandler anzupassen.
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 verwendet.
Systemvariablen für Pakete
In der folgenden Tabelle werden die Systemvariablen beschrieben, die Integration Services für Pakete bereitstellt.
Systemvariable |
Datentyp |
Beschreibung |
---|---|---|
CancelEvent |
Int32 |
Das Handle für ein Windows-Ereignisobjekt, das der Task signalisieren kann, um anzugeben, dass das Ausführen des Tasks beendet werden soll. |
CreationDate |
DateTime |
Das Datum, an dem das Paket erstellt wurde. |
CreatorComputerName |
String |
Der Computer, auf dem das Paket erstellt wurde. |
CreatorName |
String |
Der Name der Person, die das Paket erstellt hat. |
ExecutionInstanceGUID |
String |
Der eindeutige Bezeichner der ausführenden Instanz eines Pakets. |
InteractiveMode |
Boolean |
Gibt an, ob das Paket im interaktiven Modus ausgeführt wird. Wenn ein Paket im SSIS-Designer ausgeführt wird, ist diese Eigenschaft auf True festgelegt. Wenn ein Paket mit dem Eingabeaufforderungs-Hilfsprogramm DTExec ausgeführt wird, ist diese Eigenschaft auf False festgelegt. |
LocaleId |
Int32 |
Das Gebietsschema, das vom Paket verwendet wird. |
MachineName |
String |
Der Name des Computers, auf dem das Paket ausgeführt wird. |
OfflineMode |
Boolean |
Gibt an, ob sich das Paket im Offlinemodus befindet. Im Offlinemodus werden keine Verbindungen mit Datenquellen abgerufen. |
PackageID |
String |
Der eindeutige Bezeichner des Pakets. |
PackageName |
String |
Der Name des Pakets. |
StartTime |
DateTime |
Der Zeitpunkt, zu dem das Paket gestartet wurde. |
UserName |
String |
Das Konto des Benutzers, der das Paket gestartet hat. Der Benutzername wird durch den Domänennamen qualifiziert. |
VersionBuild |
Int32 |
Die Paketversion. |
VersionComment |
String |
Kommentare zur Paketversion. |
VersionGUID |
String |
Der eindeutige Bezeichner der Version. |
VersionMajor |
Int32 |
Die Hauptversion des Pakets. |
VersionMinor |
Int32 |
Die Nebenversion des Pakets. |
Systemvariablen für Container
In der folgenden Tabelle werden die Systemvariablen beschrieben, die Integration Services für For-Schleifencontainer, Foreach-Schleifencontainer und Sequenzcontainer bereitstellt.
Systemvariable |
Datentyp |
Beschreibung |
Container |
---|---|---|---|
LocaleId |
Int32 |
Das Gebietsschema, das vom Container verwendet wird. |
For-Schleifencontainer Foreach-Schleifencontainer Sequenzcontainer |
Systemvariablen für Tasks
In der folgenden Tabelle werden die Systemvariablen beschrieben, die Integration Services für Tasks bereitstellt.
Systemvariable |
Datentyp |
Beschreibung |
---|---|---|
CreationName |
String |
Der Name des Tasks. |
LocaleId |
Int32 |
Das Gebietsschema, das vom Task verwendet wird. |
TaskID |
String |
Der eindeutige Bezeichner einer Taskinstanz. |
TaskName |
String |
Der Name der Taskinstanz. |
TaskTransactionOption |
Int32 |
Die Transaktionsoption, die vom Task verwendet wird. |
Systemvariablen für Ereignishandler
In der folgenden Tabelle werden die Systemvariablen beschrieben, die Integration Services für Ereignishandler bereitstellt. Nicht alle Variablen sind für alle Ereignishandler verfügbar.
Systemvariable |
Datentyp |
Beschreibung |
Ereignishandler |
---|---|---|---|
Cancel |
Boolean |
Gibt an, ob das Ausführen des Ereignishandlers bei einem Fehler, einer Warnung oder beim Abbruch einer Abfrage beendet wird. |
OnError-Ereignishandler OnWarning-Ereignishandler OnQueryCancel-Ereignishandler |
ErrorCode |
Int32 |
Der Fehlerbezeichner. |
OnError-Ereignishandler OnInformation-Ereignishandler OnWarning-Ereignishandler |
ErrorDescription |
String |
Die Beschreibung des Fehlers. |
OnError-Ereignishandler OnInformation-Ereignishandler OnWarning-Ereignishandler |
ExecutionStatus |
Boolean |
Der aktuelle Ausführungsstatus. |
OnExecStatusChanged-Ereignishandler |
ExecutionValue |
DBNull |
Der Ausführungswert. |
OnTaskFailed-Ereignishandler |
LocaleId |
Int32 |
Das Gebietsschema, das vom Ereignishandler verwendet wird. |
Alle Ereignishandler |
PercentComplete |
Int32 |
Der Prozentsatz abgeschlossener Arbeit. |
OnProgress-Ereignishandler |
ProgressCountHigh |
Int32 |
Der obere Bereich eines 64-Bit-Werts, der die Gesamtanzahl von Vorgängen angibt, die vom OnProgress-Ereignis verarbeitet wurden. |
OnProgress-Ereignishandler |
ProgressCountLow |
Int32 |
Der untere Bereich eines 64-Bit-Werts, der die Gesamtanzahl von Vorgängen angibt, die vom OnProgress-Ereignis verarbeitet wurden. |
OnProgress-Ereignishandler |
ProgressDescription |
String |
Die Beschreibung des Status. |
OnProgress-Ereignishandler |
Propagate |
Boolean |
Gibt an, ob das Ereignis an einen Ereignishandler auf höherer Ebene weitergegeben wird.
Hinweis
Der Wert der Propagate-Variablen wird während der Überprüfung des Pakets ignoriert. Wenn Sie Propagate in einem untergeordneten Paket auf False festlegen, wird ein Ereignis dennoch an das übergeordnete Paket weitergegeben. Legen Sie die DisableEventHandlers-Eigenschaft des Tasks Paket ausführen auf True fest, wenn das übergeordnete Paket das Ereignis nicht verarbeiten soll.
|
Alle Ereignishandler |
SourceDescription |
String |
Die Beschreibung der ausführbaren Datei in dem Ereignishandler, der das Ereignis ausgelöst hat. |
Alle Ereignishandler |
SourceID |
String |
Der eindeutige Bezeichner der ausführbaren Datei in dem Ereignishandler, der das Ereignis ausgelöst hat. |
Alle Ereignishandler |
SourceName |
String |
Der Name der ausführbaren Datei in dem Ereignishandler, der das Ereignis ausgelöst hat. |
Alle Ereignishandler |
VariableDescription |
String |
Die Variablenbeschreibung. |
OnVariableValueChanged-Ereignishandler |
VariableID |
String |
Der eindeutige Bezeichner der Variablen. |
OnVariableValueChanged-Ereignishandler |
Verwenden von Systemvariablen in Parameterbindungen
Es ist häufig nützlich, beim Ausführen des Pakets die Werte von Systemvariablen in Tabellen zu speichern. Beispielsweise ein Paket, das eine Tabelle dynamisch erstellt und den GUID der Paketausführungsinstanz schreibt, mit der die Tabelle in einer Tabellenspalte erstellt wurde.
Wenn Sie Systemvariablen verwenden, um diese Parameter der SQL-Anweisung zuzuordnen, die von einem Task SQL ausführen verwendet wird, müssen Sie unbedingt sicherstellen, dass der Datentyp der einzelnen Parameterbindungen auf den jeweiligen Datentyp der Systemvariablen festgelegt ist. Andernfalls kann es sein, dass die Werte der Systemvariablen falsch übersetzt werden. Wenn beispielsweise die Systemvariable ExecutionInstanceGUID mit dem string-Datentyp und einer Zeichenfolge, mit der der GUID der ausführenden Instanz eines Pakets dargestellt wird, in einer Parameterbindung mit dem GUID-Datentyp verwendet wird, wird der GUID der Paketinstanz falsch übersetzt.
Diese Regel gilt auch für benutzerdefinierte Variablen. Während die Datentypen der Systemvariablen nicht geändert werden können, und Sie diese Variablen den Datentypen entsprechend anpassen müssen, sind benutzerdefinierte Variablen jedoch im Vergleich hierzu flexibler. Die in Parameterbindungen verwendeten benutzerdefinierten Variablen sind in der Regel mit den Datentypen definiert, die mit den zugeordneten Datentypen der Parameter kompatibel sind.
|