Datatypsmappning i ITableDefinition

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalysplattformssystem (PDW)SQL-databas i Microsoft Fabric

Ladda ned OLE DB-drivrutins

När man skapar tabeller med hjälp av funktionen ITableDefinition::CreateTable kan OLE DB-drivrutinen för SQL Server-konsument specificera SQL Server-datatyper i pwszTypeName-medlemmen i DBCOLUMNDESC-arrayen som skickas. Om konsumenten specificerar datatypen för en kolumn med namn, ignoreras OLE DB-datatypmappning, representerad av wType-medlemmen i DBCOLUMNDESC-strukturen.

När nya kolumndatatyper med OLE DB-datatyper anges med DBCOLUMNDESC-strukturen wType member mappas OLE DB-drivrutinen för SQL Server enligt följande.

OLE DB-datatyp SQL Server

datatyp
Ytterligare information
DBTYPE_BOOL bit
DBTYPE_BYTES binär, varbinär, bild eller varbinär(max) OLE DB-drivrutinen för SQL Server inspekterar ulColumnSize-medlemmen i DBCOLUMNDESC-strukturen. Baserat på värdet och versionen av SQL Server-instansen mappar OLE DB-drivrutinen för SQL Server typen till bilden.

Om värdet av ulColumnSize är mindre än den maximala längden på en kolumn för binär datatyp, inspekterar OLE DB-drivrutinen för SQL Server medlemmen rgPropertySets i DBCOLUMNDESC rgPropertySets . Om DBPROP_COL_FIXEDLENGTH är VARIANT_TRUE, mappar OLE DB-drivrutinen för SQL Server typen till binär. Om värdet på egenskapen är VARIANT_FALSE, mappar OLE DB-drivrutinen för SQL Server typen till varbinär. I båda fallen bestämmer medlemmen ulColumnSize i DBCOLUMNDESC bredden på den SQL Server-kolumn som skapas.
DBTYPE_CY pengar
DBTYPE_DBTIMESTAMP datetime2
DBTYPE_GUID uniqueidentifier
DBTYPE_I2 smallint
DBTYPE_I4 int
DBTYPE_I8 bigint
DBTYPE_NUMERIC numerisk OLE DB-drivrutinen för SQL Server inspekterar medlemmarna i DBCOLUMDESC bPrecision och bScale för att bestämma precision och skala för den numeriska kolumnen .
DBTYPE_R4 riktiga
DBTYPE_R8 float
DBTYPE_STR char, varchar, text eller varchar(max) OLE DB-drivrutinen för SQL Server inspekterar ulColumnSize-medlemmen i DBCOLUMNDESC-strukturen. Baserat på värdet och versionen av SQL Server-instansen mappar OLE DB-drivrutinen för SQL Server typen till text.

Om värdet av ulColumnSize är mindre än den maximala längden på en multibyte teckendatatypkolumn, inspekterar OLE DB-drivrutinen för SQL Server medlemmen DBCOLUMNDESC rgPropertySets . Om DBPROP_COL_FIXEDLENGTH är VARIANT_TRUE, mappar OLE DB-drivrutinen för SQL Server typen till char. Om värdet på egenskapen är VARIANT_FALSE, mappar OLE DB-drivrutinen för SQL Server typen till varchar. I båda fallen bestämmer medlemmen ulColumnSize i DBCOLUMNDESC bredden på den SQL Server-kolumn som skapas.
DBTYPE_UDT UDT Följande information används i DBCOLUMNDESC-strukturer av ITableDefinition::CreateTable när UDT-kolumner behövs:

pwSzTypeName ignoreras.

rgPropertySets måste inkludera en DBPROPSET_SQLSERVERCOLUMN egenskapsmängd som beskrivs i avsnittet om DBPROPSET_SQLSERVERCOLUMN, i Using User-Defined Types.
DBTYPE_UI1 tinyint
DBTYPE_VARIANT sql_variant
DBTYPE_WSTR Nchar, Nvarchar, ntext eller nvarchar(max) OLE DB-drivrutinen för SQL Server inspekterar ulColumnSize-medlemmen i DBCOLUMNDESC-strukturen. Baserat på värdet mappar OLE DB-drivrutinen för SQL Server typen till ntext.

Om värdet av ulColumnSize är mindre än den maximala längden på en Unicode-teckendatatypkolumn, inspekterar OLE DB-drivrutinen för SQL Server medlemmen DBCOLUMNDESC rgPropertySets . Om DBPROP_COL_FIXEDLENGTH är VARIANT_TRUE, mappar OLE DB-drivrutinen för SQL Server typen till nchar. Om värdet på egenskapen är VARIANT_FALSE, mappar OLE DB-drivrutinen för SQL Server typen till nvarchar. I båda fallen bestämmer medlemmen ulColumnSize i DBCOLUMNDESC bredden på den SQL Server-kolumn som skapas.
DBTYPE_XML XML

Anmärkning

När en ny tabell skapas mappar OLE DB-drivrutinen för SQL Server endast de OLE DB-datatyp-elisteringsvärden som anges i föregående tabell. Försök att skapa en tabell med en kolumn av någon annan OLE DB-datatyp genererar ett fel.

Se även

Datatyper (OLE DB)