Сопоставление типов данных в интерфейсе ITableDefinition
Применимо к: SQL Server Azure SQL DatabaseУправляемый экземпляр SQL AzureAzure Synapse Analytics AnalyticsPlatform System (PDW)
При создании таблиц с помощью функции 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 приводит к ошибке.
См. также:
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по