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 , RepeatableRead Serializable 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.