Implizite Datentypkonvertierung in Ausdrücken

Bei einer impliziten Datentypkonvertierung konvertiert die Ausdrucksauswertung die Daten automatisch in einen anderen Datentyp. Beispielsweise wird beim Vergleich eines smallint-Datentyps mit einem int-Datentyp der smallint-Datentyp implizit in int konvertiert, bevor der Vergleich ausgeführt wird.

Wenn die Argumente und Operanden nicht kompatible Datentypen aufweisen, kann die Ausdrucksauswertung keine implizite Datenkonvertierung ausführen. Zudem kann die Ausdrucksauswertung einen Wert nicht implizit in einen booleschen Wert konvertieren. Stattdessen müssen die Argumente und Operanden explizit mit dem Umwandlungsoperator konvertiert werden. Weitere Informationen finden Sie unter CAST (SSIS).

Das folgende Diagramm zeigt den Ergebnistyp impliziter Konvertierungen von BINARY-Vorgängen. Am Schnittpunkt von Spalte und Zeile in dieser Tabelle finden Sie den Ergebnistyp einer binären Operation mit Operanden der Typen, die links (Von) und rechts (Zu) angegeben sind.

Implizite Datentypkonvertierung zwischen Datentypen

Die Schnittmenge eines integer-Werts mit Vorzeichen und eines integer-Werts ohne Vorzeichen ist ein integer-Wert, der potenziell größer als die beiden Argumente ist.

Anhand von Operatoren werden Zeichenfolgen, Datumsangaben, boolesche Werte und andere Datentypen miteinander verglichen. Bevor ein Operator zwei Werte vergleicht, führt die Ausdrucksauswertung bestimmte implizite Konvertierungen aus: Weitere Informationen finden Sie in folgenden Themen:

Eine Funktion mit einem einzelnen Argument gibt ein Ergebnis mit dem Datentyp des Arguments zurück, wobei folgende Ausnahmen gelten:

  • DAY, MONTH und YEAR akzeptieren ein Datum und geben ein ganzzahliges Ergebnis (DT_I4) zurück.

  • ISNULL akzeptiert einen Ausdruck eines beliebigen SSIS-Datentyps und gibt einen booleschen Datentyp (DT_BOOL) zurück.

  • SQUARE und SQRT akzeptieren einen numerischen Ausdruck und geben ein nicht integrales numerisches (DT_R8) Ergebnis zurück.

Falls die Argumente vom gleichen Datentyp sind, gehört auch das Ergebnis zu diesem Datentyp. Die einzige Ausnahme ist das Ergebnis einer binären Operation für zwei Werte mit dem DT_DECIMAL-Datentyp. In diesem Fall wird ein Ergebnis mit dem DT_NUMERIC-Datentyp zurückgegeben.