Freigeben über


SQL Server Integration Services-Container

Bei Containern handelt es sich um Objekte in SQL Server Integration Services, die eine Struktur für Pakete, Dienste sowie Tasks bereitstellen. Sie unterstützen das Wiederholen von Ablaufsteuerungen in Paketen und sie gruppieren Tasks und Container zu sinnvollen Arbeitseinheiten. Container können neben Tasks andere Container einschließen.

Container werden von Paketen für folgende Zwecke verwendet:

  • Wiederholen von Tasks für jedes Element in einer Auflistung, z. B. Dateien in einem Ordner, Schemas oder SMO-Objekte ( SQL Server Management Objects). Beispielsweise kann ein Paket Transact-SQL-Anweisungen ausführen, die in mehreren Dateien vorhanden sind.

  • Wiederholen von Tasks, bis ein angegebener Ausdruck zu false ausgewertet wird. Beispielsweise kann von einem Paket siebenmal eine unterschiedliche E-Mail-Nachricht gesendet werden, einmal für jeden Wochentag.

  • Gruppieren von Tasks und Containern, die als Einheit erfolgreich ausgeführt werden oder einen Fehler erzeugen müssen. Beispielsweise kann ein Paket Tasks gruppieren, mit denen Zeilen in einer Datenbanktabelle gelöscht und hinzugefügt werden, und anschließend einen Commit oder ein Rollback für alle Tasks ausführen, wenn bei einem Task ein Fehler auftritt.

Containertypen

Integration Services stellt vier verschiedene Containertypen zum Erstellen von Paketen bereit. In der folgenden Tabelle sind die Containertypen aufgeführt.

Container BESCHREIBUNG
Foreach-Schleifencontainer Führt eine Ablaufsteuerung wiederholt mithilfe eines Enumerators aus.
For-Schleifencontainer Führt eine Ablaufsteuerung wiederholt durch Testen einer Bedingung aus.
Sequenzcontainer Gruppiert Tasks und Container zu Ablaufsteuerungen, die Teilmengen der Paketablaufsteuerung sind.
Taskhostcontainer Stellt Dienste für einen einzelnen Task bereit.

Pakete und Ereignishandler sind ebenfalls Containertypen. Weitere Informationen finden Sie unter Integration Services-Pakete (SSIS) und Integration Services-Ereignishandler (SSIS).

Zusammenfassung der Containereigenschaften

Alle Containertypen haben einen Teil der Eigenschaften gemeinsam. Wenn Sie Pakete mithilfe des grafischen Tools erstellen, das von Integration Services bereitgestellt wird, werden im Eigenschaftenfenster die folgenden Eigenschaften für die Foreach-Schleife, die For-Schleife und die Sequenzcontainer aufgelistet. Die Eigenschaften für den Host-Container des Tasks werden als Teil des Tasks konfiguriert, den der Host für den Task kapselt. Sie legen die Eigenschaften des Tasks für den Host fest, wenn Sie den Task konfigurieren.

Eigenschaft BESCHREIBUNG
DelayValidation Ein boolescher Wert, der angibt, ob die Überprüfung des Containers bis zur Ausführungszeit ausgesetzt wird. Der Standardwert dieser Eigenschaft ist False.

Weitere Informationen finden Sie unter DelayValidation.
Description Die Containerbeschreibung. Die Eigenschaft enthält eine Zeichenfolge, die aber möglicherweise leer ist.

Weitere Informationen finden Sie unter Description.
Disable Ein boolescher Wert, der angibt, ob der Container ausgeführt wird. Der Standardwert dieser Eigenschaft ist False.

Weitere Informationen finden Sie unter Disable.
DisableEventHandlers Ein boolescher Wert, der angibt, ob der Ereignishandler mit dem ausgeführten Container verbunden ist. Der Standardwert dieser Eigenschaft ist False.
FailPackageOnFailure Ein boolescher Wert, der angibt, ob ein Paketfehler auftritt, wenn der Container fehlerhaft ist. Der Standardwert dieser Eigenschaft ist False.

Weitere Informationen finden Sie unter FailPackageOnFailure.
FailParentOnFailure Ein boolescher Wert, der angibt, ob ein Fehler beim übergeordneten Container auftritt, wenn der Container fehlerhaft ist. Der Standardwert dieser Eigenschaft ist False.

Weitere Informationen finden Sie unter FailParentOnFailure.
ForcedExecutionValue Ein Objekt, das den optionalen Ausführungswert für den Container enthält, falls ForceExecutionValue auf True festgelegt ist. Der Standardwert dieser Eigenschaft ist 0.

Weitere Informationen finden Sie unter ForcedExecutionValue.
ForcedExecutionValueType Der Datentyp von ForcedExecutionValue. Der Standardwert dieser Eigenschaft ist Int32.
ForceExecutionResult Ein Wert, der das Ergebnis der erzwungenen Ausführung des Pakets oder Containers angibt. Mögliche Werte sind None, Success, Failure und Completion. Der Standardwert dieser Eigenschaft ist None.

Weitere Informationen finden Sie unter ForceExecutionResult.
ForceExecutionValue Ein boolescher Wert, der angibt, ob ein bestimmter optionaler Ausführungswert des Containers erzwungen werden soll. Der Standardwert dieser Eigenschaft ist False.

Weitere Informationen finden Sie unter ForceExecutionValue.
ID Der Container-GUID, der dem Paket beim Erstellen zugewiesen wird. Diese Eigenschaft ist schreibgeschützt.

ID.
IsolationLevel Die Isolationsstufe der Containertransaktion. Mögliche Werte sind Unspecified, Chaos, ReadUncommitted, ReadCommitted, RepeatableReadSerializable und Snapshot. Der Standardwert dieser Eigenschaft ist Serializable. Weitere Informationen finden Sie unter IsolationLevel.
LocaleID Ein Microsoft Win32-Gebietsschema. Der Standardwert dieser Eigenschaft ist das Gebietsschema des Betriebssystems auf dem lokalen Computer.

Weitere Informationen finden Sie unter LocaleID.
LoggingMode Ein Wert, der das Protokollierungsverhalten des Containers angibt. Mögliche Werte sind Disabled, Enabled und UseParentSetting. Der Standardwert dieser Eigenschaft ist UseParentSetting. Weitere Informationen finden Sie unter DTSLoggingMode.
MaximumErrorCount Die maximal zulässige Anzahl von Fehlern, nach der die Ausführung eines Containers beendet wird. Der Standardwert dieser Eigenschaft ist 1.

Weitere Informationen finden Sie unter MaximumErrorCount.
Name Der Name des Containers,

Weitere Informationen finden Sie unter Name.
TransactionOption Die Transaktionsteilnahme des Containers. Die Werte sind NotSupported, Supported, Required. Der Standardwert dieser Eigenschaft ist Supported. Weitere Informationen finden Sie unter DTSTransactionOption.

Weitere Informationen zu Eigenschaften, die in Foreach-Schleifencontainer, For-Schleifencontainer, Sequenzcontainer und Taskhostcontainer verfügbar sind, wenn Sie sie programmgesteuert konfigurieren, finden Sie unter dem API-Thema von Integration Services :

  • T:Microsoft.SqlServer.Dts.Runtime.ForEachLoop

  • T:Microsoft.SqlServer.Dts.Runtime.ForLoop

  • T:Microsoft.SqlServer.Dts.Runtime.Sequence

  • T:Microsoft.SqlServer.Dts.Runtime.TaskHost

Objekte, die die Containerfunktionalität erweitern

Container enthalten Ablaufsteuerungen, die aus ausführbaren Dateien und Rangfolgeneinschränkungen bestehen und Ereignishandler und Variablen verwenden können. Der Taskhostcontainer ist eine Ausnahme, da er einen einzelnen Task kapselt und deshalb keine Rangfolgeneinschränkungen verwendet.

Ausführbare Dateien

Ausführbare Dateien beziehen sich auf die Tasks auf Containerebene und Container innerhalb des Containers. Eine ausführbare Datei kann einer der Tasks und Container sein, die Integration Services bereitstellt, oder ein benutzerdefinierter Task. Weitere Informationen finden Sie unter Integration Services-Aufgaben und Integration Services-Container.

Rangfolgeneinschränkungen

Rangfolgeneinschränkungen verlinken Container und Tasks innerhalb desselben übergeordneten Containers zu einer geordneten Ablaufsteuerung. Weitere Informationen finden Sie unter Rangfolgeneinschränkungen.

Ereignishandler

Ereignishandler auf Containerebene entsprechen Ereignissen, die vom Container oder den darin enthaltenen Objekten ausgelöst werden. Weitere Informationen finden Sie unter Integration Services-Ereignishandler (SSIS).

Variablen

Zu Variablen, die in Containern verwendet werden, zählen die Systemvariablen auf Containerebene, die von Integration Services bereitgestellt werden, und die benutzerdefinierten Variablen, die der Container verwendet. Weitere Informationen finden Sie unter Integration Services-Variablen (SSIS).

Breakpoints

Wenn Sie einen Breakpoint für einen Container festlegen und die Unterbrechungsbedingung Unterbrechen, wenn der Container das OnVariableValueChanged-Ereignis empfängtlautet, definieren Sie die Variable im Containerbereich.

Siehe auch

Ablaufsteuerung