Syntax (SSIS)
Die Ausdruckssyntax von Integration Services ähnelt der von den Sprachen C und C# verwendeten Syntax. Ausdrücke schließen Elemente ein, wie z. B. Bezeichner (Spalten und Variablen), Literale, Operatoren und Funktionen. Dieses Thema enthält eine Zusammenfassung der speziellen Anforderungen der Ausdrucksauswertungssyntax für die verschiedenen Ausdruckselemente.
Beispielausdrücke, in denen bestimmte Operatoren und Funktionen verwendet werden, finden Sie in den Themen zu den einzelnen Operatoren und Funktionen unter den folgenden Themen: Operatoren (SSIS-Ausdruck) und Zeichenfolgenfunktionen und andere Funktionen (SSIS-Ausdruck).
Beispielausdrücke, in denen mehrere Operatoren und Funktionen sowie Bezeichner und Literale verwendet werden, finden Sie unter Erweiterte SQL Server Integration Services-Ausdrücke.
Beispielausdrücke zur Verwendung in Eigenschaftsausdrücken finden Sie unter Verwendung von Eigenschaftsausdrücken in Paketen.
In einigen Fällen erzwingt Integration Services eine Beschränkung der Länge von Ausdrücken auf 4.000 Zeichen. Hat das Auswertungsergebnis eines Ausdrucks den Integration Services-Datentyp DT_WSTR oder DT_STR, wird der Ausdruck nach 4.000 Zeichen abgeschnitten. Ist der Ergebnistyp eines Unterausdrucks DT_STR oder DT_WSTR, wird dieser Unterausdruck unabhängig vom Ergebnistyp des Gesamtausdrucks ebenfalls nach 4.000 Zeichen abgeschnitten.
Je nachdem, in welcher Integration Services-Komponente die Kürzung erfolgt, werden Kürzungen unterschiedlich gehandhabt.
In Transformationen wie "Abgeleitete Spalte" und "Bedingtes Teilen" kann das Abschneiden erfolgreich behandelt werden, indem die Transformationen so konfiguriert werden, dass Abschneidungen ignoriert werden oder eine Fehlerausgabe verwendet wird, um Datenzeilen, die Kürzungen verursachen, an eine andere Ausgabe umzuleiten.
Zur Laufzeit ist das Abschneiden von Ausdrücken, die zum Festlegen von Eigenschaftsausdrücken, Variablen und Rangfolgeneinschränkungen verwendet werden, ein Fehler und kann dazu führen, dass das Paket einen Fehler verursacht.
Zur Entwurfszeit wird durch das Abschneiden eines Zeichenfolgenliterals eine Warnung generiert, wenn dieses in der Pipeline erfolgt, und ein Fehler, wenn es zur Laufzeit erfolgt.
Bezeichner
Ausdrücke können Spalten- und Variablenbezeichner einschließen. Die Spalten können aus der Datenquelle stammen oder mithilfe von Transformationen im Datenfluss erstellt werden. In Ausdrücken kann mit Herkunftsbezeichnern auf Spalten verwiesen werden. Bei Herkunftsbezeichnern handelt es sich um Zahlen, mit denen Paketelemente eindeutig identifiziert werden. Wenn in Ausdrücken auf Herkunftsbezeichner verwiesen wird, muss das Nummernzeichen (#) verwendet werden. Beispielsweise wird auf den Herkunftsbezeichner 138 mit #138 verwiesen.
Ausdrücke können Systemvariablen von SSIS sowie benutzerdefinierte Variablen einschließen. Wenn in Ausdrücken auf Variablen verwiesen wird, muss das @-Präfix verwendet werden. Beispielsweise wird auf die Counter-Variable mit @Counter verwiesen. Das @-Zeichen ist nicht Bestandteil des Variablennamens, sondern identifiziert die Variable nur gegenüber der Ausdrucksauswertung. Weitere Informationen finden Sie unter Bezeichner (SSIS).
Literale
Ausdrücke können numerische und boolesche Literale sowie Zeichenfolgenliterale einschließen. Zeichenfolgenliterale müssen in Ausdrücken in Anführungszeichen eingeschlossen werden. Für numerische und boolesche Literale werden keine Anführungszeichen verwendet. Die Ausdruckssprache beinhaltet Escapesequenzen für für häufig verwendete Escapezeichen. Weitere Informationen finden Sie unter Literale (SSIS).
Operatoren
Die Ausdrucksauswertung stellt eine Reihe von Operatoren bereit, die eine ähnliche Funktionalität wie die Operatoren in Sprachen, wie z. B. Transact-SQL, C++ und C#, aufweisen. Die Ausdruckssprache enthält jedoch zusätzliche Operatoren und verwendet andere Symbole, mit denen Sie möglicherweise nicht vertraut sind. Weitere Informationen finden Sie unter Operatoren (SSIS-Ausdruck).
Namespaceauflösungsoperator
In Ausdrücken wird mit dem Namespaceauflösungsoperator (::) die Mehrdeutigkeit von gleichnamigen Variablen vermieden. Mit dem Namespaceauflösungsoperator können Sie die Variable mit ihrem Namespace qualifizieren. Dadurch können mehrere gleichnamige Variablen in demselben Paket verwendet werden.
Umwandlungsoperator
Der Umwandlungsoperator konvertiert Ausdrucksergebnisse, Spaltenwerte, Variablenwerte und Konstanten in einen anderen Datentyp. Der Umwandlungsoperator der Ausdruckssprache ist mit dem Umwandlungsoperator in den Programmiersprachen C und C# zu vergleichen. In Transact-SQL stellen die Funktionen CAST und CONVERT diese Funktionalität bereit. Die Syntax des Umwandlungsoperators unterscheidet sich gegenüber CAST und CONVERT folgendermaßen:
Ein Ausdruck kann als Argument verwendet werden.
In der Syntax ist das CAST-Schlüsselwort nicht eingeschlossen.
In der Syntax ist das AS-Schlüsselwort nicht eingeschlossen.
Bedingungsoperator
Der Bedingungsoperator gibt einen von zwei Ausdrücken basierend auf der Auswertung eines booleschen Ausdrucks zurück. Der Bedingungsoperator der Ausdruckssprache ist mit dem Bedingungsoperator in den Programmiersprachen C und C# zu vergleichen. In mehrdimensionalen Ausdrücken (MDX, Multidimensional Expressions) stellt die IIF-Funktion eine ähnliche Funktionalität bereit.
Logische Operatoren
Die Ausdruckssprache unterstützt das Zeichen ! für den logischen NOT-Operator. In Transact-SQL ist der !-Operator in die relationalen Operatoren integriert. Beispielsweise enthält Transact-SQL die Operatoren > und !>. Die Kombination des !-Operators mit anderen Operatoren wird von der SSIS-Ausdruckssprache nicht unterstützt. Beispielsweise können ! und > nicht zu !> kombiniert werden. Die Ausdruckssprache unterstützt jedoch keine integrierte !=-Zeichenkombination für Ungleich-Vergleiche.
Gleichheitsoperatoren
Die Ausdrucksauswertungsgrammatik enthält den Gleichheitsoperator (==). Dieser Operator ist das Äquivalent zum =-Operator in Transact-SQL bzw. zum ==-Operator in C#.
Funktionen
Die Ausdruckssprache enthält Datums- und Zeitfunktionen, mathematische Funktionen und Zeichenfolgenfunktionen, die mit Transact-SQL-Funktionen und C#-Methoden vergleichbar sind.
Einige Funktionen besitzen zwar denselben Namen wie Transact-SQL-Funktionen, weisen jedoch in der Ausdrucksauswertung eine etwas andere Funktionalität auf.
In Transact-SQL ersetzt die ISNULL-Funktion NULL-Werte mit einem angegebenen Wert. Die ISNULL-Funktion der Ausdrucksauswertung gibt dagegen einen booleschen Wert zurück, je nachdem, ob ein Ausdruck NULL ist.
In Transact-SQL enthält die ROUND-Funktion eine Option zum Abschneiden des Resultsets, während dies bei der ROUND-Funktion in der Ausdrucksauswertung nicht der Fall ist.
Weitere Informationen finden Sie unter Zeichenfolgenfunktionen und andere Funktionen (SSIS-Ausdruck).
Externe Ressourcen
Technischer Artikel Spickzettel für SSIS-Ausdrücke auf pragmaticworks.com
Technischer Artikel mit Beispielen für SSIS-Ausdrücke auf social.technet.microsoft.com