Mapeamento do tipo de dados em ITableDefinition
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics Analytics Platform System (PDW)
Ao criar tabelas usando a função ITableDefinition::CreateTable, o consumidor do OLE DB Driver for SQL Server pode especificar tipos de dados do SQL Server no membro pwszTypeName da matriz DBCOLUMNDESC passada. Caso o consumidor especifique o tipo de dados de uma coluna por nome, o mapeamento do tipo de dados OLE DB, representado pelo membro wType da estrutura DBCOLUMNDESC, será ignorado.
Ao especificar novos tipos de dados de coluna com tipos de dados OLE DB usando o membro wType da estrutura DBCOLUMNDESC, o OLE DB Driver for SQL Server mapeia os tipos de dados do OLE DB conforme mostrado a seguir.
Tipo de dados OLE DB | SQL Server tipo de dados |
Informações adicionais |
---|---|---|
DBTYPE_BOOL | bit | |
DBTYPE_BYTES | binary, varbinary, image, ou varbinary(max) | O Driver do OLE DB para SQL Server inspeciona o membro ulColumnSize da estrutura DBCOLUMNDESC. Com base no valor e na versão da instância do SQL Server, o Driver do OLE DB para SQL Server mapeia o tipo para image. Caso o valor de ulColumnSize seja menor que o tamanho máximo de uma coluna de tipo de dados binary, o OLE DB Driver for SQL Server inspecionará o membro rgPropertySets de DBCOLUMNDESC. Caso DBPROP_COL_FIXEDLENGTH seja VARIANT_TRUE, o Driver do OLE DB para SQL Server mapeia o tipo para binary. Caso o valor da propriedade seja VARIANT_FALSE, o Driver do OLE DB para SQL Server mapeia o tipo para varbinary. Em ambos os casos, o membro ulColumnSize de DBCOLUMNDESC determina a largura da coluna do SQL Server criada. |
DBTYPE_CY | money | |
DBTYPE_DBTIMESTAMP | datetime2 | |
DBTYPE_GUID | uniqueidentifier | |
DBTYPE_I2 | smallint | |
DBTYPE_I4 | int | |
DBTYPE_I8 | bigint | |
DBTYPE_NUMERIC | numeric | O OLE DB Driver for SQL Server inspeciona os membros bPrecision e bScale de DBCOLUMDESC para determinar a precisão e a escala da coluna numeric. |
DBTYPE_R4 | real | |
DBTYPE_R8 | float | |
DBTYPE_STR | char, varchar, text ou varchar(max) | O Driver do OLE DB para SQL Server inspeciona o membro ulColumnSize da estrutura DBCOLUMNDESC. Com base no valor e na versão da instância do SQL Server, o Driver do OLE DB para SQL Server mapeia o tipo para text. Caso o valor de ulColumnSize seja menor que o tamanho máximo de uma coluna de tipo de dados de caractere multibyte, o OLE DB Driver for SQL Server inspecionará o membro rgPropertySets de DBCOLUMNDESC. Caso DBPROP_COL_FIXEDLENGTH seja VARIANT_TRUE, o Driver do OLE DB para SQL Server mapeia o tipo para char. Caso o valor da propriedade seja VARIANT_FALSE, o Driver do OLE DB para SQL Server mapeia o tipo para varchar. Em ambos os casos, o membro ulColumnSize de DBCOLUMNDESC determina a largura da coluna do SQL Server criada. |
DBTYPE_UDT | UDT | As seguintes informações são usadas em estruturas DBCOLUMNDESC por ITableDefinition::CreateTable quando as colunas UDT são obrigatórias: pwSzTypeName é ignorado. rgPropertySets deve incluir uma propriedade DBPROPSET_SQLSERVERCOLUMN definida conforme descrito na seção sobre DBPROPSET_SQLSERVERCOLUMN, em Uso de tipos definidos pelo usuário. |
DBTYPE_UI1 | tinyint | |
DBTYPE_VARIANT | sql_variant | |
DBTYPE_WSTR | nchar, nvarchar, ntext ou nvarchar(max) | O Driver do OLE DB para SQL Server inspeciona o membro ulColumnSize da estrutura DBCOLUMNDESC. Com base no valor, o Driver do OLE DB para SQL Server mapeia o tipo para ntext. Caso o valor de ulColumnSize seja menor que o tamanho máximo de uma coluna de tipo de dados de caractere Unicode, o OLE DB Driver for SQL Server inspecionará o membro rgPropertySets de DBCOLUMNDESC. Caso DBPROP_COL_FIXEDLENGTH seja VARIANT_TRUE, o Driver do OLE DB para SQL Server mapeia o tipo para nchar. Caso o valor da propriedade seja VARIANT_FALSE, o Driver do OLE DB para SQL Server mapeia o tipo para nvarchar. Em ambos os casos, o membro ulColumnSize de DBCOLUMNDESC determina a largura da coluna do SQL Server criada. |
DBTYPE_XML | XML |
Observação
Ao criar uma nova tabela, o OLE DB Driver for SQL Server mapeia apenas os valores de enumeração do tipo de dados OLE DB especificados na tabela anterior. Tentar criar uma tabela com uma coluna de qualquer outro tipo de dados OLE DB gera um erro.