次の方法で共有


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 binaryvarbinaryimagevarbinary(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 charvarchartextvarchar(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 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

Note

新しいテーブルを作成する場合、SQL Server Native Client OLE DB プロバイダーは、前の表で指定した OLE DB データ型列挙値のみをマップします。 それ以外の OLE DB データ型の列が含まれたテーブルを作成すると、エラーが発生します。

参照

データ型 (OLE DB)