ITableDefinition 中的SQL Server Native Client資料類型對應

適用于:SQL Server (Azure SQL Database Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System ( PDW) 的所有支援) 版本

使用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 實例的值和版本,SQL Server Native Client OLE DB 提供者會將類型對應至影像

如果ulColumnSize的值小於二進位資料類型資料行的最大長度,則 SQL Server Native Client OLE DB 提供者會檢查 DBCOLUMNDESC rgPropertySets成員。 如果DBPROP_COL_FIXEDLENGTH VARIANT_TRUE,SQL Server Native Client OLE DB 提供者會將類型對應至二進位檔。 如果屬性的值是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成員,以判斷數值資料行的有效位數和小數位
DBTYPE_R4 real
DBTYPE_R8 float
DBTYPE_STR charvarchartextvarchar(max) SQL Server Native Client OLE DB 提供者會檢查DBCOLUMNDESC 結構的 ulColumnSize成員。 根據 SQL Server 實例的值和版本,SQL Server Native Client OLE DB 提供者會將類型對應至文字

如果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)