共用方式為


ITableDefinition 中的資料類型對應

使用 ITableDefinition::CreateTable 函數來建立資料表時,SQL Server Native Client OLE DB 提供者取用者可以在傳遞之 DBCOLUMNDESC 陣列的 pwszTypeName 成員中指定 SQL Server 資料類型。 如果取用者依照名稱來指定資料行的資料類型,系統就會忽略 OLE DB 資料對應 (由 DBCOLUMNDESC 結構的 wType 成員代表)。

使用 DBCOLUMNDESC 結構 wType 成員來指定具有 OLE DB 資料類型的新資料行資料類型時,SQL Server Native Client OLE DB 提供者會依照下列方式對應 OLE DB 資料類型。

OLE DB 資料類型

SQL Server

資料類型

其他資訊

DBTYPE_BOOL

bit

DBTYPE_BYTES

binaryvarbinaryimagevarbinary(max)

SQL Server Native Client OLE DB 提供者會檢查 DBCOLUMNDESC 結構的 ulColumnSize 成員。 SQL Server Native Client OLE DB 提供者會根據此值以及 SQL Server 執行個體的版本,將此類型對應至 image

如果 ulColumnSize 的值小於 binary 資料類型資料行的最大長度,SQL Server Native Client OLE DB 提供者就會檢查 DBCOLUMNDESC rgPropertySets 成員。 如果 DBPROP_COL_FIXEDLENGTH 是 VARIANT_TRUE,SQL Server Native Client OLE DB 提供者就會將此類型對應至 binary。 如果屬性值是 VARIANT_FALSE,SQL Server Native Client OLE DB 提供者就會將此類型對應至 varbinary。 不論是哪一種情況,DBCOLUMNDESC ulColumnSize 成員都會決定所建立之 SQL Server 資料行的寬度。

DBTYPE_CY

money

DBTYPE_DBTIMESTAMP

datetime

DBTYPE_GUID

uniqueidentifier

DBTYPE_I2

smallint

DBTYPE_I4

int

DBTYPE_NUMERIC

numeric

SQL Server Native Client OLE DB 提供者會檢查 DBCOLUMDESC bPrecisionbScale 成員來決定 numeric 資料行的有效位數和小數位數。

DBTYPE_R4

real

DBTYPE_R8

float

DBTYPE_STR

charvarchartextvarchar(max)

SQL Server Native Client OLE DB 提供者會檢查 DBCOLUMNDESC 結構的 ulColumnSize 成員。 SQL Server Native Client OLE DB 提供者會根據此值以及 SQL Server 執行個體的版本,將此類型對應至 text

如果 ulColumnSize 的值小於多位元組字元資料類型資料行的最大長度,SQL Server Native Client OLE DB 提供者就會檢查 DBCOLUMNDESC rgPropertySets 成員。 如果 DBPROP_COL_FIXEDLENGTH 是 VARIANT_TRUE,SQL Server Native Client OLE DB 提供者就會將此類型對應至 char。 如果屬性值是 VARIANT_FALSE,SQL Server Native Client OLE DB 提供者就會將此類型對應至 varchar。 不論是哪一種情況,DBCOLUMNDESC ulColumnSize 成員都會決定所建立之 SQL Server 資料行的寬度。

DBTYPE_UDT

UDT

當需要 UDT 資料行時,下列資訊會用於 ITableDefinition::CreateTable 所使用的 DBCOLUMNDESC 結構中:

  • pwSzTypeName 會被忽略。

  • rgPropertySets 必須包含 DBPROPSET_SQLSERVERCOLUMN 屬性集,如<使用使用者定義型別>中有關 DBPROPSET_SQLSERVERCOLUMN 的章節所述。

DBTYPE_UI1

tinyint

DBTYPE_WSTR

ncharnvarcharntextnvarchar(max)

SQL Server Native Client OLE DB 提供者會檢查 DBCOLUMNDESC 結構的 ulColumnSize 成員。 SQL Server Native Client OLE DB 提供者會根據此值,將此類型對應至 ntext

如果 ulColumnSize 的值小於 Unicode 字元資料類型資料行的最大長度,SQL Server Native Client OLE DB 提供者就會檢查 DBCOLUMNDESC rgPropertySets 成員。 如果 DBPROP_COL_FIXEDLENGTH 是 VARIANT_TRUE,SQL Server Native Client OLE DB 提供者就會將此類型對應至 nchar。 如果屬性值是 VARIANT_FALSE,SQL Server Native Client OLE DB 提供者就會將此類型對應至 nvarchar。 不論是哪一種情況,DBCOLUMNDESC ulColumnSize 成員都會決定所建立之 SQL Server 資料行的寬度。

DBTYPE_XML

XML

[!附註]

建立新的資料表時,SQL Server Native Client OLE DB 提供者只會對應上表中指定的 OLE DB 資料類型列舉值。 嘗試建立含有任何其他 OLE DB 資料類型之資料行的資料表都會產生錯誤。

請參閱

概念

資料類型 (OLE DB)