ITableDefinition での SQL Server Native Client データ型のマッピング
適用対象: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
ITableDefinition::CreateTable 関数を使用してテーブルを作成する場合、SQL Server Native Client OLE DB プロバイダー コンシューマーは、渡される DBCOLUMNDESC 配列の pwszTypeName メンバーに SQL Server データ型を指定できます。 コンシューマーが列のデータ型を名前で指定する場合、DBCOLUMNDESC 構造体の wType メンバーで示される OLE DB データ型のマッピングは無視されます。
DBCOLUMNDESC 構造体 wType メンバーを使用して OLE DB データ型で新しい列データ型を指定する場合、SQL Server Native Client OLE DB プロバイダーは OLE DB データ型を次のようにマップします。
OLE DB データ型 | SQL Server データ型 (data type) |
関連情報 |
---|---|---|
DBTYPE_BOOL | bit | |
DBTYPE_BYTES | binary、varbinary、image、varbinary(max) | SQL Server Native Client OLE DB プロバイダーは、DBCOLUMNDESC 構造体の ulColumnSize メンバーを検査します。 SQL Server インスタンスの値とバージョンに基づいて、SQL Server Native Client OLE DB プロバイダーは型を 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 bPrecision および bScale メンバーを検査して、 数値 列の有効桁数と小数点以下桁数を決定します。 |
DBTYPE_R4 | real | |
DBTYPE_R8 | float | |
DBTYPE_STR | char、varchar、text、varchar(max) | SQL Server Native Client OLE DB プロバイダーは、DBCOLUMNDESC 構造体の ulColumnSize メンバーを検査します。 SQL Server インスタンスの値とバージョンに基づいて、SQL Server Native Client OLE DB プロバイダーは型を 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 | nchar、nvarchar、ntext、nvarchar(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 |
Note
新しいテーブルを作成する場合、SQL Server Native Client OLE DB プロバイダーは、前の表で指定した OLE DB データ型列挙値のみをマップします。 それ以外の OLE DB データ型の列が含まれたテーブルを作成すると、エラーが発生します。