Freigeben über


Datentypzuordnung zu ITableDefinition

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL verwaltete Instanz Azure Synapse Analytics Analytics Platform System (PDW)

OLE DB-Treiber herunterladen

Beim Erstellen von Tabellen mit der Funktion ITableDefinition::CreateTable kann der Consumer des OLE DB-Treibers für SQL Server SQL Server-Datentypen im Element pwszTypeName des DBCOLUMNDESC-Arrays angeben, das der Funktion übergeben wird. Gibt der Consumer den Datentyp einer Spalte namentlich an, wird die OLE DB-Datentypzuordnung ignoriert, die durch das wType-Element der DBCOLUMNDESC-Struktur dargestellt wird.

Wenn die Datentypen neuer Spalten mit OLE DB-Datentypen mithilfe des Elements wType der DBCOLUMNDESC-Struktur angegeben werden, dann ordnet der OLE DB-Treiber für SQL Server die OLE DB-Datentypen wie folgt zu.

OLE DB-Datentyp SQL Server

Datentyp
Zusätzliche Informationen
DBTYPE_BOOL bit
DBTYPE_BYTES binary, varbinary, image oder varbinary(max) Der OLE DB-Treiber für SQL Server untersucht die ulColumnSize-Elemente der DBCOLUMNDESC-Struktur. Basierend auf dem Wert und der Version der SQL Server-Instanz ordnet der OLE DB-Treiber für SQL Server den Typ zu image hinzu.

Wenn der Wert von ulColumnSize kleiner als die maximale Länge einer Spalte des binary-Datentyps ist, dann überprüft der OLE DB-Treiber für SQL Server das Element rgPropertySets der DBCOLUMNDESC-Struktur. Falls „VARIANT_TRUE“ der Wert für „DBPROP_COL_FIXEDLENGTH“ ist, ordnet der OLE DB-Treiber für SQL Server den Typ zu binary hinzu. Falls der Wert der Eigenschaft „VARIANT_FALSE“ ist, ordnet der OLE DB-Treiber für SQL Server den Typ zu varbinary hinzu. In jedem Fall bestimmt das Element ulColumnSize der DBCOLUMNDESC-Struktur die Breite der SQL Server-Spalte, die erstellt wird.
DBTYPE_CY money
DBTYPE_DBTIMESTAMP datetime2
DBTYPE_GUID uniqueidentifier
DBTYPE_I2 smallint
DBTYPE_I4 int
DBTYPE_I8 bigint
DBTYPE_NUMERIC numeric Der OLE DB-Treiber für SQL Server überprüft das Element bPrecision und das Element bScale der DBCOLUMDESC-Struktur, um Genauigkeit und Dezimalstellen der Spalte numeric zu bestimmen.
DBTYPE_R4 real
DBTYPE_R8 float
DBTYPE_STR char, varchar, text oder varchar(max) Der OLE DB-Treiber für SQL Server untersucht die ulColumnSize-Elemente der DBCOLUMNDESC-Struktur. Basierend auf dem Wert und der Version der SQL Server-Instanz ordnet der OLE DB-Treiber für SQL Server den Typ zu text hinzu.

Wenn der Wert von ulColumnSize kleiner ist als die maximale Länge einer Spalte eines Datentyps für Multibyte-Zeichendaten ist, dann überprüft der OLE DB-Treiber für SQL Server das Element rgPropertySets von DBCOLUMNDESC. Falls „VARIANT_TRUE“ der Wert für „DBPROP_COL_FIXEDLENGTH“ ist, ordnet der OLE DB-Treiber für SQL Server den Typ zu char hinzu. Falls der Wert der Eigenschaft „VARIANT_FALSE“ ist, ordnet der OLE DB-Treiber für SQL Server den Typ zu varchar hinzu. In jedem Fall bestimmt das Element ulColumnSize der DBCOLUMNDESC-Struktur die Breite der SQL Server-Spalte, die erstellt wird.
DBTYPE_UDT UDT Die folgenden Informationen werden von DBCOLUMNDESC-Strukturen verwendet, die von ITableDefinition::CreateTable verwendet werden, wenn UDT-Spalten erforderlich sind:

pwSzTypeName wird ignoriert.

rgPropertySets muss wie im Abschnitt zu DBPROPSET_SQLSERVERCOLUMN unter Verwenden von benutzerdefinierten Typen beschrieben einen DBPROPSET_SQLSERVERCOLUMN-Eigenschaftensatz umfassen.
DBTYPE_UI1 tinyint
DBTYPE_VARIANT sql_variant
DBTYPE_WSTR nchar, nvarchar, ntext oder nvarchar(max) Der OLE DB-Treiber für SQL Server untersucht die ulColumnSize-Elemente der DBCOLUMNDESC-Struktur. Basierend auf dem Wert ordnet der OLE DB-Treiber für SQL Server den Typ zu ntext hinzu.

Wenn der Wert von ulColumnSize kleiner ist als die maximale Länge einer Spalte eines Datentyps für Unicode-Zeichendaten ist, dann überprüft der OLE DB-Treiber für SQL Server das Element rgPropertySets von DBCOLUMNDESC. Falls „VARIANT_TRUE“ der Wert für „DBPROP_COL_FIXEDLENGTH“ ist, ordnet der OLE DB-Treiber für SQL Server den Typ zu nchar hinzu. Falls der Wert der Eigenschaft „VARIANT_FALSE“ ist, ordnet der OLE DB-Treiber für SQL Server den Typ zu nvarchar hinzu. In jedem Fall bestimmt das Element ulColumnSize der DBCOLUMNDESC-Struktur die Breite der SQL Server-Spalte, die erstellt wird.
DBTYPE_XML XML

Hinweis

Beim Erstellen einer neuen Tabelle ordnet der OLE DB-Treiber für SQL Server nur die in der vorstehenden Tabelle angegebenen Enumerationswerte für OLE DB-Datentypen zu. Durch den Versuch, eine Tabelle mit einer Spalte eines anderen OLE DB-Datentyps zu erstellen, wird ein Fehler erzeugt.

Weitere Informationen

Datentypen (OLE DB)