(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Datentypkonvertierung (Datenbankmodul)

Datentypen können in den folgenden Szenarien konvertiert werden:

  • Wenn Daten aus einem Objekt zu einem anderen Objekt verschoben oder mit diesem verglichen oder kombiniert werden, müssen die Daten möglicherweise vom Datentyp des einen Objekts in den Datentyp des anderen Objekts konvertiert werden.

  • Wenn Daten aus einer Ergebnisspalte, einem Rückgabecode oder einem Ausgabeparameter von Transact-SQL in eine Programmvariable verschoben werden, müssen die Daten vom SQL Server-Systemdatentyp in den Datentyp der Variablen konvertiert werden.

Bei der Konvertierung zwischen einer Anwendungsvariablen und einer Resultsetspalte, einem Rückgabecode, einem Parameter oder Parametermarker von SQL Server werden die unterstützten Datentypkonvertierungen von der Datenbank-API (Application Programming Interface, Anwendungsprogrammierschnittstelle) definiert.

Datentypen können entweder implizit oder explizit konvertiert werden.

Implizite Konvertierungen sind für den Benutzer nicht sichtbar. SQL Server konvertiert die Daten automatisch von einem Datentyp in einen anderen. Beispielsweise wird beim Vergleich eines smallint-Datentyps mit einem int-Datentyp der smallint-Datentyp implizit in int konvertiert, bevor der Vergleich fortgesetzt wird.

GETDATE() konvertiert das Datumsformat implizit in 0. SYSDATETIME() konvertiert das Datumsformat implizit in 21.

Explizite Konvertierungen verwenden die Funktionen CAST oder CONVERT.

Die Funktionen CAST und CONVERT (Transact-SQL) konvertieren einen Wert (eine lokale Variable, eine Spalte oder einen anderen Ausdruck) von einem Datentyp in einen anderen. Die folgende CAST-Funktion konvertiert z. B. den numerischen Wert $157.27 in die Zeichenfolge '157.27':

CAST ( $157.27 AS VARCHAR(10) )

Verwenden Sie CAST anstelle von CONVERT, wenn der Transact-SQL-Programmcode dem ISO-Standard entsprechen soll. Verwenden Sie hingegen CONVERT anstelle von CAST, wenn Sie die Vorteile der Formatfunktionen in CONVERT nutzen möchten.

In der folgenden Abbildung werden alle expliziten und impliziten Datentypkonvertierungen aufgeführt, die für die vom SQL Server-System bereitgestellten Datentypen zulässig sind. Zu diesen gehören xml, bigint und sql_variant. Es gibt keine implizite Konvertierung bei der Zuweisung vom sql_variant-Datentyp, eine implizite Konvertierung zum sql_variant-Datentyp findet jedoch statt.

Datentyp-Konvertierungstabelle

Einige implizite und explizite Datentypkonvertierungen werden nicht unterstützt, wenn Sie den Datentyp eines SQL Server-Objekts in einen anderen konvertieren. Ein nchar-Wert kann nicht in einen image-Wert konvertiert werden. nchar kann nur mit der expliziten Konvertierung in binary konvertiert werden; eine implizite Konvertierung in binary wird nicht unterstützt. nchar kann jedoch explizit oder implizit in nvarchar konvertiert werden.

In den folgenden Themen wird das Konvertierungsverhalten der entsprechenden Datentypen beschrieben:

Konvertieren von Datentypen mithilfe von gespeicherten Prozeduren der OLE-Automatisierung

Da SQL Server Transact-SQL-Datentypen und die OLE-Automatisierung Visual Basic-Datentypen verwendet, müssen die gespeicherten Prozeduren der OLE-Automatisierung übergebene Daten konvertieren.

In der folgenden Tabelle werden die Konvertierungen von SQL Server-Datentypen in Visual Basic-Datentypen dargestellt.

SQL Server-Datentyp

Visual Basic-Datentyp

char , varchar, text, nvarchar, ntext

String

decimal , numeric

String

bit

Boolean

binary , varbinary, image

Eindimensionales Byte()-Array

int

Long

smallint

Integer

tinyint

Byte

float

Double

real

Single

money , smallmoney

Currency

datetime , smalldatetime

Date

Beliebige auf NULL festgelegte Typen

Variant , festgelegt auf NULL

Alle einzelnen SQL Server-Werte mit Ausnahme der binary-, varbinary- und image-Werte werden in einen einzelnen Visual Basic-Wert konvertiert. Diese Werte werden in ein eindimensionales Byte()-Array in Visual Basic konvertiert. Dieses Array weist einen Bereich von Byte(0 bis length1) auf, wobei length die Anzahl der Bytes in den binary-, varbinary- oder image-Werten von SQL Server darstellt.

Im Folgenden sehen Sie die Konvertierungen von Visual Basic-Datentypen in SQL Server-Datentypen.

Visual Basic-Datentyp

SQL Server-Datentyp

Long , Integer, Byte, Boolean, Object

int

Double , Single

float

Currency

money

Date

datetime

String mit maximal 4.000 Zeichen

varchar /nvarchar

String mit mehr als 4.000 Zeichen

text /ntext

Eindimensionales Byte()-Array mit maximal 8.000 Byte

varbinary

Eindimensionales Byte()-Array mit mehr als 8.000 Byte

image

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft