ITableDefinition의 데이터 형식 매핑
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 데이터 형식 |
추가 정보 |
---|---|---|
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에 매핑합니다. 두 경우 모두 생성되는 SQL Server 열의 너비는 DBCOLUMNDESC ulColumnSize 멤버에 따라 결정됩니다. |
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 멤버를 검사하여 numeric 열의 전체 자릿수 및 소수 자릿수를 확인합니다. |
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에 매핑합니다. 두 경우 모두 생성되는 SQL Server 열의 너비는 DBCOLUMNDESC ulColumnSize 멤버에 따라 결정됩니다. |
DBTYPE_UDT |
UDT |
UDT 열이 필요한 경우 ITableDefinition::CreateTable에서 DBCOLUMNDESC 구조에 사용하는 정보는 다음과 같습니다.
|
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 값이 유니코드 문자 데이터 형식 열의 최대 길이보다 작으면 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에 매핑합니다. 두 경우 모두 생성되는 SQL Server 열의 너비는 DBCOLUMNDESC ulColumnSize 멤버에 따라 결정됩니다. |
DBTYPE_XML |
XML |
[!참고]
새 테이블을 만들 때 SQL Server Native Client OLE DB 공급자는 위 표에 지정된 OLE DB 데이터 형식 열거형 값만 매핑합니다. 다른 OLE DB 데이터 형식의 열로 테이블을 만들려고 하면 오류가 생성됩니다.