Mapping dei tipi di dati in ITableDefinition
Si applica a: SQL Server
Database SQL di Azure
Istanza gestita di SQL di Azure
Azure Synapse Analytics
Piattaforma di strumenti analitici (PDW)
In caso di creazione di tabelle tramite la funzione ITableDefinition::CreateTable, il consumer di Microsoft OLE DB Driver per SQL Server può specificare tipi di dati di SQL Server nel membro pwszTypeName della matrice DBCOLUMNDESC passata. Se il consumer specifica il tipo di dati di una colonna in base al nome, il mapping del tipo di dati OLE DB rappresentato dal membro wType della struttura DBCOLUMNDESC viene ignorato.
Per specificare nuovi tipi di dati di colonna con tipi di dati OLE DB mediante il membro wType della struttura DBCOLUMNDESC, il driver OLE DB per SQL Server esegue il mapping dei tipi di dati OLE DB come segue.
Tipo di dati OLE DB | SQL Server tipo di dati |
Informazioni aggiuntive |
---|---|---|
DBTYPE_BOOL | bit | |
DBTYPE_BYTES | binary, varbinary, image, o varbinary(max) | OLE DB Driver per SQL Server controlla il membro ulColumnSize della struttura DBCOLUMNDESC. In base al valore e alla versione dell'istanza di SQL Server, OLE DB Driver per SQL Server esegue il mapping del tipo a image. Se il valore di ulColumnSize è minore della lunghezza massima di una colonna del tipo di dati binary, il driver OLE DB per SQL Server controlla il membro rgPropertySets di DBCOLUMNDESC. Se DBPROP_COL_FIXEDLENGTH è VARIANT_TRUE, OLE DB Driver per SQL Server esegue il mapping del tipo a binary. Se il valore della proprietà è VARIANT_FALSE, OLE DB Driver per SQL Server esegue il mapping del tipo a varbinary. In entrambi i casi il membro ulColumnSize di DBCOLUMNDESC determina la larghezza della colonna di SQL Server creata. |
DBTYPE_CY | money | |
DBTYPE_DBTIMESTAMP | datetime2 | |
DBTYPE_GUID | uniqueidentifier | |
DBTYPE_I2 | smallint | |
DBTYPE_I4 | int | |
DBTYPE_I8 | bigint | |
DBTYPE_NUMERIC | numeric | Il driver OLE DB per SQL Server controlla i membri bPrecision e bScale di DBCOLUMDESC per determinare la precisione e la scala per la colonna numeric. |
DBTYPE_R4 | real | |
DBTYPE_R8 | float | |
DBTYPE_STR | char, varchar, text, o varchar(max) | OLE DB Driver per SQL Server controlla il membro ulColumnSize della struttura DBCOLUMNDESC. In base al valore e alla versione dell'istanza di SQL Server, OLE DB Driver per SQL Server esegue il mapping del tipo a text. Se il valore di ulColumnSize è minore della lunghezza massima di una colonna del tipo di dati multibyte, il driver OLE DB per SQL Server controlla il membro rgPropertySets di DBCOLUMNDESC. Se DBPROP_COL_FIXEDLENGTH è VARIANT_TRUE, OLE DB Driver per SQL Server esegue il mapping del tipo a char. Se il valore della proprietà è VARIANT_FALSE, OLE DB Driver per SQL Server esegue il mapping del tipo a varchar. In entrambi i casi il membro ulColumnSize di DBCOLUMNDESC determina la larghezza della colonna di SQL Server creata. |
DBTYPE_UDT | UDT | Le informazioni seguenti vengono usate nelle strutture DBCOLUMNDESC impiegate da ITableDefinition::CreateTable quando sono necessarie colonne di tipo definito dall'utente: pwSzTypeName viene ignorato. rgPropertySets deve includere un set di proprietà DBPROPSET_SQLSERVERCOLUMN, come descritto nella sezione DBPROPSET_SQLSERVERCOLUMN, in Uso dei tipi definiti dall'utente. |
DBTYPE_UI1 | tinyint | |
DBTYPE_VARIANT | sql_variant | |
DBTYPE_WSTR | nchar, nvarchar, ntext, o nvarchar(max) | OLE DB Driver per SQL Server controlla il membro ulColumnSize della struttura DBCOLUMNDESC. In base al valore, OLE DB Driver per SQL Server esegue il mapping del tipo a ntext. Se il valore di ulColumnSize è minore della lunghezza massima di una colonna del tipo di dati Unicode, il driver OLE DB per SQL Server controlla il membro rgPropertySets di DBCOLUMNDESC. Se DBPROP_COL_FIXEDLENGTH è VARIANT_TRUE, OLE DB Driver per SQL Server esegue il mapping del tipo a nchar. Se il valore della proprietà è VARIANT_FALSE, OLE DB Driver per SQL Server esegue il mapping del tipo a nvarchar. In entrambi i casi il membro ulColumnSize di DBCOLUMNDESC determina la larghezza della colonna di SQL Server creata. |
DBTYPE_XML | XML |
Nota
In caso di creazione di una nuova tabella, il driver OLE DB per SQL Server esegue il mapping solo dei valori di enumerazione del tipo di dati OLE DB specificati nella tabella precedente. Il tentativo di creare una tabella con una colonna di qualsiasi altro tipo di dati OLE DB DB genera un errore.