Datentypverwendung

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Der SQL Server Native Client ODBC-Treiber und SQL Server die folgende Verwendung von Datentypen erzwingen.

Datentyp Einschränkung
Datumsliterale Datumliterale, die in einer SQL_TYPE_TIMESTAMP Spalte (SQL Server Datentypen datetime oder smalldatetime) gespeichert werden, weisen einen Zeitwert von 12:00:00.000 A.M auf.
Geld und Kleingeld Nur die ganzzahligen Teile der Datentypen money und smallmoney sind von Bedeutung. Wenn der Dezimalteil der SQL-Gelddaten während der Datentypkonvertierung abgeschnitten wird, gibt der SQL Server Native Client ODBC-Treiber eine Warnung und keinen Fehler zurück.
SQL_BINARY (NULL zulassen) Wenn eine Verbindung mit einer Instanz von SQL Server Version 6.0 und früher hergestellt wird, sind die in der Datenquelle gespeicherten Daten nicht mit Nullen versehen, wenn eine SQL_BINARY Spalte nullwertig ist. Wenn Daten aus einer solchen Spalte abgerufen werden, markiert der SQL Server Native Client ODBC-Treiber sie mit Nullen auf der rechten Seite. Daten, die in Vorgängen erstellt werden, die von SQL Server ausgeführt werden, z. B. Verkettung, verfügen jedoch nicht über eine solche Auffüllung.

Wenn Daten in einer solchen Spalte in einer Instanz von SQL Server 6.0 oder früher platziert werden, schneidet SQL Server die Daten auf der rechten Seite ab, wenn sie zu lang sind, um in die Spalte zu passen.

Hinweis: Der SQL Server Native Client ODBC-Treiber unterstützt eine Verbindung mit SQL Server Version 6.5 und früher.
SQL_CHAR (Kürzung) Wenn eine Verbindung mit einer Instanz von SQL Server 6.0 und früher hergestellt wird und Daten in eine SQL_CHAR Spalte eingefügt werden, wird sie SQL Server rechts ohne Warnung abgeschnitten, wenn die Daten zu lang sind, um in die Spalte zu passen.

Hinweis: Der SQL Server Native Client ODBC-Treiber unterstützt eine Verbindung mit SQL Server Version 6.5 und früher.
SQL_CHAR (NULL zulassen) Wenn eine Verbindung mit einer Instanz von SQL Server 6.0 und früher hergestellt wird, sind die in der Datenquelle gespeicherten Daten nicht mit Leerzeichen versehen, wenn eine SQL_CHAR Spalte nullable ist. Wenn Daten aus einer solchen Spalte abgerufen werden, füllt der SQL Server Native Client ODBC-Treiber diese mit Leerzeichen auf der rechten Seite. Daten, die in Vorgängen erstellt werden, die von SQL Server ausgeführt werden, z. B. Verkettung, verfügen jedoch nicht über eine solche Auffüllung.

Hinweis: Der SQL Server Native Client ODBC-Treiber unterstützt eine Verbindung mit SQL Server Version 6.5 und früher.
SQL_LONGVARBINARY, SQL_LONGVARCHAR, SQL_WLONGVARCHAR Aktualisierungen von Spalten mit SQL_LONGVARBINARY-, SQL_LONGVARCHAR- oder SQL_WLONGVARCHAR-Datentypen (mithilfe einer WHERE-Klausel), die sich auf mehrere Zeilen auswirken, werden vollständig unterstützt, wenn eine Verbindung mit einer Instanz von SQL Server 6 hergestellt wird. x und höher. Wenn eine Verbindung mit einer Instanz von SQL Server 4.2x hergestellt wird, tritt ein S1000-Fehler auf: "Partielles Einfügen/Aktualisieren. Die Einfügung bzw. das Update von Text- oder Imagespalte(n) war nicht erfolgreich." ausgegeben, wenn das Update mehr als eine Zeile betrifft.

Hinweis: Der SQL Server Native Client ODBC-Treiber unterstützt eine Verbindung mit SQL Server Version 6.5 und früher.
Zeichenfolge-Funktionsparameter string_exp Parameter für die Zeichenfolgenfunktionen müssen vom Datentyp SQL_CHAR oder SQL_VARCHAR sein. SQL_LONG_VARCHAR-Datentypen werden in Zeichenfolgenfunktionen nicht unterstützt. Der Count-Parameter muss kleiner als oder gleich 8.000 sein, da die Datentypen SQL_CHAR und SQL_VARCHAR auf eine maximale Länge von 8.000 Zeichen beschränkt sind.
Zeitliterale Zeitliterale, die in einer SQL_TIMESTAMP Spalte (SQL Server Datentypen datetime oder smalldatetime) gespeichert werden, weisen den Datumswert 1. Januar 1900 auf.
timestamp Nur ein NULL-Wert kann manuell in eine Zeitstempelspalte eingefügt werden. Da Zeitstempelspaltenjedoch automatisch von SQL Server aktualisiert werden, wird ein NULL-Wert überschrieben.
tinyint Der SQL Server tinyint-Datentyp ist nicht signiert. Eine tinyint-Spalte ist standardmäßig an eine Variable des Datentyps SQL_C_UTINYINT gebunden.
Aliasdatentypen Wenn eine Verbindung mit einer Instanz von SQL Server 4.2x hergestellt wird, fügt der ODBC-Treiber null zu einer Spaltendefinition hinzu, die nicht explizit die NULL-Zulässigkeit einer Spalte deklariert. Deshalb wird der NULL-Zulässigkeitsstatus, der in der Definition eines Aliasdatentyps gespeichert ist, ignoriert.

Wenn eine Verbindung mit einer Instanz von SQL Server 4.2x hergestellt wird, werden Spalten mit einem Aliasdatentyp mit einem Basisdatentyp char oder binär, für die keine NULLability deklariert ist, als Datentyp varchar oder varbinary erstellt. SQLColAttribute, SQLColumns und SQLDescribeCol geben SQL_VARCHAR oder SQL_VARBINARY als Datentyp für diese Spalten zurück. Daten, die von diesen Spalten abgerufen werden, werden nicht aufgefüllt.

Hinweis: Der SQL Server Native Client ODBC-Treiber unterstützt eine Verbindung mit SQL Server Version 6.5 und früher.
LONG-Datentypen Data-at-Execution-Parameter sind sowohl für den SQL_LONGVARBINARY- als auch für den SQL_LONGVARCHAR-Datentypen eingeschränkt.
Typen für hohe Werte Der SQL Server Native Client ODBC-Treiber macht varchar(max), varbinary(max) und nvarchar(max) typen als SQL_VARCHAR, SQL_VARBINARY und SQL_WVARCHAR in APIs verfügbar, die ODBC SQL-Datentypen akzeptieren oder zurückgeben.
Benutzerdefinierter Typ (User-defined type, UDT) UDT-Spalten werden als SQL_SS_UDT zugeordnet. Wenn eine UDT-Spalte unter Verwendung der ToString()- oder der ToXMLString()-Methode des UDT oder über die CAST/CONVERT-Funktionen explizit einem anderen Typ in der SQL-Anweisung zugeordnet wird, gibt der Typ der Spalte im Resultset den tatsächlichen Typ wieder, in den die Spalte konvertiert wurde.

Der SQL Server Native Client ODBC-Treiber kann nur als Binär an eine UDT-Spalte gebunden werden. SQL Server unterstützt nur die Konvertierung zwischen den Datentypen SQL_SS_UDT und SQL_C_BINARY.
XML SQL Server konvertiert XML automatisch in Unicode-Text. Der XML-Typ wird als SQL_SS_XML zugeordnet.

Weitere Informationen

Verarbeiten von Ergebnissen (ODBC)