데이터 형식 사용

SQL Server Native Client ODBC 드라이버 및 SQL Server는 다음과 같은 데이터 형식 사용을 설정합니다.

데이터 형식

제한 사항

날짜 리터럴

SQL_TYPE_TIMESTAMP 열(SQL Server 데이터 형식의 datetime 또는 smalldatetime)에 저장된 경우 날짜 리터럴의 시간 값은 12:00:00.000 A.M.입니다.

moneysmallmoney

moneysmallmoney 데이터 형식의 정수 부분만 의미가 있습니다. 데이터 형식이 변환되는 동안 SQL money 데이터의 소수 부분이 잘리는 경우 SQL Server Native Client ODBC 드라이버에서 오류가 아니라 경고를 반환합니다.

SQL_BINARY(Null 허용)

SQL Server 6.0 이전 버전의 인스턴스에 연결되어 있으면 SQL_BINARY 열에서 Null을 허용하는 경우 데이터 원본에 저장된 데이터에 0이 붙지 않습니다. 해당 열의 데이터가 검색되면 SQL Server Native Client ODBC 드라이버에서 데이터 오른쪽에 0을 채웁니다. 하지만 SQL Server가 수행한 작업(예: 연결)에서 만들어진 데이터에는 이러한 패딩이 없습니다.

또한 SQL Server 6.0 이전 버전의 인스턴스에서 데이터가 이러한 열에 배치되면 데이터가 너무 길어 열에 맞지 않을 경우 SQL Server에서 오른쪽의 데이터를 자릅니다.

[!참고]

SQL Server Native Client ODBC 드라이버는 SQL Server 6.5 이하 버전에 대한 연결을 지원합니다.

SQL_CHAR(잘림)

SQL Server 6.0 이전 버전의 인스턴스에 연결되어 있고 데이터가 SQL_CHAR 열에 배치되면 데이터가 너무 길어 열에 맞지 않을 경우 SQL Server에서 경고 없이 오른쪽의 데이터를 자릅니다.

[!참고]

SQL Server Native Client ODBC 드라이버는 SQL Server 6.5 이하 버전에 대한 연결을 지원합니다.

SQL_CHAR(Null 허용)

SQL Server 6.0 이전 버전의 인스턴스에 연결되어 있으면 SQL_CHAR 열에서 Null을 허용하는 경우 데이터 원본에 저장된 데이터에 공백이 붙지 않습니다. 해당 열의 데이터가 검색되면 SQL Server Native Client ODBC 드라이버에서 데이터 오른쪽에 공백을 채웁니다. 하지만 SQL Server가 수행한 작업(예: 연결)에서 만들어진 데이터에는 이러한 패딩이 없습니다.

[!참고]

SQL Server Native Client ODBC 드라이버는 SQL Server 6.5 이하 버전에 대한 연결을 지원합니다.

SQL_LONGVARBINARY, SQL_LONGVARCHAR, SQL_WLONGVARCHAR

SQL Server 6.x 이상 인스턴스에 연결되어 있으면 여러 행에 영향을 주는 SQL_LONGVARBINARY, SQL_LONGVARCHAR 또는 SQL_WLONGVARCHAR 데이터 형식의 열 업데이트(WHERE 절 사용)가 완전히 지원됩니다. SQL Server 4.2x 인스턴스에 연결되어 있으면 업데이트가 둘 이상의 행에 영향을 주는 경우 S1000 오류, "부분 삽입/업데이트. 텍스트 또는 이미지 열의 삽입/업데이트가 실패했습니다"가 반환됩니다.

[!참고]

SQL Server Native Client ODBC 드라이버는 SQL Server 6.5 이하 버전에 대한 연결을 지원합니다.

문자열 함수 매개 변수

문자열 함수에 대한 string_exp 매개 변수는 SQL_CHAR 또는 SQL_VARCHAR 데이터 형식이어야 합니다. SQL_LONG_VARCHAR 데이터 형식은 문자열 함수에서 지원되지 않습니다. SQL_CHAR 및 SQL_VARCHAR 데이터 형식의 최대 길이가 8,000자로 제한되므로 count 매개 변수는 8,000보다 작거나 같아야 합니다.

시간 리터럴

SQL_TIMESTAMP 열(SQL Server 데이터 형식 datetime 또는 smalldatetime)에 저장된 경우 시간 리터럴의 날짜 값은 January 1, 1900입니다.

timestamp

timestamp 열에는 NULL 값만 수동으로 삽입할 수 있습니다. 하지만 timestamp 열은 SQL Server에서 자동으로 업데이트되므로 NULL 값을 덮어씁니다.

tinyint

SQL Server tinyint 데이터 형식은 부호가 없습니다. tinyint 열은 기본적으로 SQL_C_UTINYINT 데이터 형식의 변수에 바인딩됩니다.

별칭 데이터 형식

SQL Server 4.2x 인스턴스에 연결되어 있으면 ODBC 드라이버는 열의 Null 허용을 명시적으로 선언하지 않는 열 정의에 NULL을 추가합니다. 따라서 별칭 데이터 형식의 정의에 저장된 Null 허용 여부는 무시됩니다.

SQL Server 4.2x 인스턴스에 연결되어 있으면 기본 데이터 형식이 char 또는 binary이고 Null 허용 여부가 선언되지 않은, 별칭 데이터 형식의 열은 varchar 또는 varbinary 데이터 형식으로 만들어집니다. SQLColAttribute, SQLColumnsSQLDescribeCol은 이러한 열의 데이터 형식으로 SQL_VARCHAR 또는 SQL_VARBINARY를 반환합니다. 해당 열에서 검색한 데이터는 채워지지 않습니다.

[!참고]

SQL Server Native Client ODBC 드라이버는 SQL Server 6.5 이하 버전에 대한 연결을 지원합니다.

LONG 데이터 형식

실행 시 데이터 매개 변수는 SQL_LONGVARBINARY 및 SQL_LONGVARCHAR 데이터 형식에 대해 모두 제한됩니다.

큰 값 형식

SQL Server Native Client ODBC 드라이버는 ODBC SQL 데이터 형식을 받아들이거나 반환하는 API에서 varchar(max), varbinary(max)nvarchar(max) 형식을 각각 SQL_VARCHAR, SQL_VARBINARY 및 SQL_WVARCHAR로 노출합니다.

UDT(사용자 정의 형식)

UDT 열은 SQL_SS_UDT로 매핑됩니다. UDT의 ToString() 또는 ToXMLString() 메서드를 사용하거나 CAST/CONVERT 함수를 통해 SQL 문에서 명시적으로 UDT 열이 다른 형식에 매핑되어 있으면 결과 집합의 열 형식은 해당 열이 변환된 실제 형식을 반영합니다.

SQL Server Native Client ODBC 드라이버는 UDT 열에 이진으로만 바인딩할 수 있습니다. SQL Server는 SQL_SS_UDT 및 SQL_C_BINARY 데이터 형식 간의 변환만 지원합니다.

XML

SQL Server는 자동으로 XML을 유니코드 텍스트로 변환합니다. XML 유형은 SQL_SS_XML로 매핑됩니다.

참고 항목

개념

결과 처리(ODBC)