Сопоставление типов данных в интерфейсе ITableDefinition

Применимо к: SQL Server Azure SQL DatabaseУправляемый экземпляр SQL AzureAzure Synapse Analytics AnalyticsPlatform System (PDW)

Скачать драйвер OLE DB

При создании таблиц с помощью функции ITableDefinition::CreateTable потребитель драйвера OLE DB для SQL Server может указывать типы данных SQL Server в передаваемом элементе pwszTypeName массива DBCOLUMNDESC. Если потребитель указывает тип данных столбца по имени, то сопоставление типов OLE DB, представляемое элементом wType структуры DBCOLUMNDESC, не учитывается.

При использовании элемента wType структуры DBCOLUMNDESC для указания новых типов данных столбца с использованием типов данных OLE DB драйвер OLE DB для SQL Server сопоставляет типы данных OLE DB указанным ниже образом.

Тип данных OLE DB SQL Server

тип данных
Дополнительные сведения
DBTYPE_BOOL bit
DBTYPE_BYTES binary, varbinary, image или varbinary(max) OLE DB Driver for SQL Server выполняет проверку элемента ulColumnSize структуры DBCOLUMNDESC. В зависимости от значения и от версии экземпляра SQL Server OLE DB Driver for SQL Server сопоставляет тип с типом image.

Если значение ulColumnSize меньше максимальной длины столбца типа binary, то драйвер OLE DB для SQL Server проверяет элемент rgPropertySets структуры DBCOLUMNDESC. Если значение DBPROP_COL_FIXEDLENGTH равно VARIANT_FALSE, OLE DB Driver for SQL Server сопоставляет этот тип с типом binary. Если значение свойства равно VARIANT_FALSE, OLE DB Driver for SQL Server сопоставляет этот тип с типом varbinary. В любом случае элемент ulColumnSize структуры DBCOLUMNDESC определяет ширину создаваемого столбца SQL Server.
DBTYPE_CY money
DBTYPE_DBTIMESTAMP datetime2
DBTYPE_GUID uniqueidentifier
DBTYPE_I2 smallint
DBTYPE_I4 int
DBTYPE_I8 bigint
DBTYPE_NUMERIC numeric Драйвер OLE DB для SQL Server проверяет элементы bPrecision и bScale структуры DBCOLUMDESC, чтобы определить точность и число десятичных знаков столбца numeric.
DBTYPE_R4 real
DBTYPE_R8 float
DBTYPE_STR char, varchar, text или varchar(max) OLE DB Driver for SQL Server выполняет проверку элемента ulColumnSize структуры DBCOLUMNDESC. В зависимости от значения и от версии экземпляра SQL Server OLE DB Driver for SQL Server сопоставляет тип с типом text.

Если значение ulColumnSize меньше максимальной длины столбца многобайтового символьного типа данных, то драйвер OLE DB для SQL Server проверяет элемент rgPropertySets структуры DBCOLUMNDESC. Если значение DBPROP_COL_FIXEDLENGTH равно VARIANT_FALSE, OLE DB Driver for SQL Server сопоставляет этот тип с типом char. Если значение свойства равно VARIANT_FALSE, OLE DB Driver for SQL Server сопоставляет этот тип с типом varchar. В любом случае элемент ulColumnSize структуры DBCOLUMNDESC определяет ширину создаваемого столбца SQL Server.
DBTYPE_UDT UDT Следующие сведения используются в структурах DBCOLUMNDESC, применяемых методом ITableDefinition::CreateTable, когда требуются столбцы пользовательских типов:

pwSzTypeName игнорируется.

Свойство rgPropertySets должно включать набор свойств DBPROPSET_SQLSERVERCOLUMN, как описано в пункте DBPROPSET_SQLSERVERCOLUMN раздела Использование определяемых пользователем типов.
DBTYPE_UI1 tinyint
DBTYPE_VARIANT sql_variant
DBTYPE_WSTR nchar, nvarchar, ntext или nvarchar(max) OLE DB Driver for SQL Server выполняет проверку элемента ulColumnSize структуры DBCOLUMNDESC. В зависимости от значения OLE DB Driver for SQL Server сопоставляет тип с типом ntext.

Если значение ulColumnSize меньше максимальной длины столбца символов Юникода, то драйвер OLE DB для SQL Server проверяет элемент rgPropertySets структуры DBCOLUMNDESC. Если значение DBPROP_COL_FIXEDLENGTH равно VARIANT_FALSE, OLE DB Driver for SQL Server сопоставляет этот тип с типом nchar. Если значение свойства равно VARIANT_FALSE, OLE DB Driver for SQL Server сопоставляет этот тип с типом nvarchar. В любом случае элемент ulColumnSize структуры DBCOLUMNDESC определяет ширину создаваемого столбца SQL Server.
DBTYPE_XML XML

Примечание

При создании таблицы драйвер OLE DB для SQL Server сопоставляет только значения перечислений типов данных OLE DB, указанные в предшествующей таблице. Попытка создать таблицу со столбцом любого другого типа данных OLE DB приводит к ошибке.

См. также:

Типы данных (OLE DB)