다음을 통해 공유


SQLColAttribute

적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW)

SQLColAttribute를 사용하여 준비된 ODBC 문 또는 실행된 ODBC 문에 대한 결과 집합 열의 특성을 검색할 수 있습니다. 준비된 문에서 SQLColAttribute를 호출하면 SQL Server에 대한 왕복이 발생합니다. SQL Server Native Client ODBC 드라이버는 문 실행의 일부로 결과 집합 열 데이터를 수신하므로 SQLExecute 또는 SQLExecDirect가 완료된 후 SQLColAttribute를 호출하는 데는 서버 왕복이 포함되지 않습니다.

참고 항목

ODBC 열 식별자 특성은 모든 SQL Server 결과 집합에서 사용할 수 없습니다.

필드 식별자 설명
SQL_COLUMN_TABLE_NAME 서버 커서를 생성하는 문 또는 FOR BROWSE 절을 포함하는 실행된 SELECT 문에서 검색된 결과 집합에서 사용할 수 있습니다.
SQL_DESC_BASE_COLUMN_NAME 서버 커서를 생성하는 문 또는 FOR BROWSE 절을 포함하는 실행된 SELECT 문에서 검색된 결과 집합에서 사용할 수 있습니다.
SQL_DESC_BASE_TABLE_NAME 서버 커서를 생성하는 문 또는 FOR BROWSE 절을 포함하는 실행된 SELECT 문에서 검색된 결과 집합에서 사용할 수 있습니다.
SQL_DESC_CATALOG_NAME 데이터베이스 이름입니다. 서버 커서를 생성하는 문 또는 FOR BROWSE 절을 포함하는 실행된 SELECT 문에서 검색된 결과 집합에서 사용할 수 있습니다.
SQL_DESC_LABEL 모든 결과 집합에서 사용할 수 있습니다. 값은 SQL_DESC_NAME 필드의 값과 동일합니다.

열이 식의 결과이고 식에 레이블 할당이 없는 경우에만 필드 길이가 0입니다.
SQL_DESC_NAME 모든 결과 집합에서 사용할 수 있습니다. 값은 SQL_DESC_LABEL 필드의 값과 동일합니다.

열이 식의 결과이고 식에 레이블 할당이 없는 경우에만 필드 길이가 0입니다.
SQL_DESC_SCHEMA_NAME 소유자 이름입니다. 서버 커서를 생성하는 문 또는 FOR BROWSE 절을 포함하는 실행된 SELECT 문에서 검색된 결과 집합에서 사용할 수 있습니다.

SELECT 문의 열에 소유자 이름이 지정된 경우에만 사용할 수 있습니다.
SQL_DESC_TABLE_NAME 서버 커서를 생성하는 문 또는 FOR BROWSE 절을 포함하는 실행된 SELECT 문에서 검색된 결과 집합에서 사용할 수 있습니다.
SQL_DESC_UNNAMED 열이 식의 일부로 레이블 할당을 포함하지 않는 식의 결과가 아닌 한 결과 집합의 모든 열에 대해 SQL_NAMED. SQL_DESC_UNNAMED가 SQL_UNNAMED를 반환하면 모든 ODBC 열 식별자 특성이 열에 대해 길이가 0인 문자열을 포함함을 나타냅니다.

SQL Server Native Client ODBC 드라이버는 SET FMTONLY 문을 사용하여 SQLColAttribute가 준비되었지만 실행되지 않은 문에 대해 호출될 때 서버 오버헤드를 줄입니다.

큰 값 형식의 경우 SQLColAttribute 는 다음 값을 반환합니다.

필드 식별자 변경 내용 설명
SQL_DESC_DISPLAY_SIZE 열의 데이터를 표시하는 데 필요한 최대 문자 수입니다. 큰 값 유형 열에 대해서는 SQL_SS_LENGTH_UNLIMITED 값을 반환합니다.
SQL_DESC_LENGTH 결과 집합에 있는 열의 실제 길이를 반환합니다. 큰 값 유형 열에 대해서는 SQL_SS_LENGTH_UNLIMITED 값을 반환합니다.
SQL_DESC_OCTET_LENGTH 큰 값 유형 열의 최대 길이를 반환합니다. 크기가 무제한임을 나타낼 때는 SQL_SS_LENGTH_UNLIMITED를 사용합니다.
SQL_DESC_PRECISION 큰 값 유형 열에 대해 SQL_SS_LENGTH_UNLIMITED 값을 반환합니다.
SQL_DESC_TYPE 큰 값 유형에 대해 SQL_VARCHAR, SQL_WVARCHAR 및 SQL_VARBINARY를 반환합니다.
SQL_DESC_TYPE_NAME 큰 값 형식에 대해 "varchar", "varbinary", "nvarchar"를 반환합니다.

모든 버전에서 열 특성은 준비된 SQL 문 일괄 처리에 의해 여러 결과 집합이 생성될 때 첫 번째 결과 집합에 대해서만 보고됩니다.

다음 열 특성은 SQL Server Native Client ODBC 드라이버에서 노출하는 확장입니다. SQL Server Native Client ODBC 드라이버는 NumericAttrPtr 매개 변수의 모든 값을 반환합니다. 값은 WORD 배열에 대한 포인터인 SQL_CA_SS_COMPUTE_BYLIST 제외하고 SDWORD(길게 부호 있는)로 반환됩니다.

필드 식별자 반환 값
SQL_CA_SS_COLUMN_HIDDEN* 참조된 열이 FOR BROWSE를 포함하는 Transact-SQL SELECT 문을 지원하기 위해 만든 숨겨진 기본 키의 일부인 경우 TRUE입니다.
SQL_CA_SS_COLUMN_ID 현재 Transact-SQL SELECT 문 내에서 COMPUTE 절 결과 열의 서수 위치입니다.
SQL_CA_SS_COLUMN_KEY* 참조된 열이 행 기본 키의 일부이고 Transact-SQL SELECT 문에 FOR BROWSE가 포함된 경우 TRUE입니다.
SQL_CA_SS_COLUMN_OP COMPUTE 절 열의 값을 담당하는 집계 연산자를 지정하는 정수입니다. 정수 값의 정의는 sqlncli.h에 있습니다.
SQL_CA_SS_COLUMN_ORDER ODBC 또는 Transact-SQL SELECT 문의 ORDER BY 절 내에서 열의 서수 위치입니다.
SQL_CA_SS_COLUMN_SIZE 열에서 검색된 데이터 값을 SQL_C_BINARY 변수에 바인딩하는 데 필요한 최대 길이(바이트)입니다.
SQL_CA_SS_COLUMN_SSTYPE SQL Server 열에 저장된 데이터의 네이티브 데이터 형식입니다. 형식 값의 정의는 sqlncli.h에 있습니다.
SQL_CA_SS_COLUMN_UTYPE SQL Server 열의 사용자 정의 데이터 형식의 기본 데이터 형식입니다. 형식 값의 정의는 sqlncli.h에 있습니다.
SQL_CA_SS_COLUMN_VARYLEN 열의 데이터가 길이가 다를 수 있으면 TRUE이고, 그렇지 않으면 FALSE입니다.
SQL_CA_SS_COMPUTE_BYLIST COMPUTE 절의 BY 구에 사용되는 열을 지정하는 WORD 배열(부호 없는 짧은)에 대한 포인터입니다. COMPUTE 절에서 BY 구를 지정하지 않으면 NULL 포인터가 반환됩니다.

배열의 첫 번째 요소에는 BY 목록 열 수가 포함됩니다. 추가 요소는 열 서수입니다.
SQL_CA_SS_COMPUTE_ID 현재 Transact-SQL SELECT 문에서 COMPUTE 절의 결과인 행의 computeid 입니다.
SQL_CA_SS_NUM_COMPUTES 현재 Transact-SQL SELECT 문에 지정된 COMPUTE 절 수입니다.
SQL_CA_SS_NUM_ORDERS ODBC 또는 Transact-SQL SELECT 문의 ORDER BY 절에 지정된 열의 수입니다.

* 문 특성 SQL_SOPT_SS_HIDDEN_COLUMNS SQL_HC_ON 설정된 경우 사용할 수 있습니다.

SQL Server 2005(9.x)에서는 각각 XML 스키마 컬렉션 이름, 스키마 이름 및 카탈로그 이름을 나타내는 추가 정보를 제공하기 위해 드라이버별 설명자 필드를 도입했습니다. 영숫자가 아닌 문자를 포함하는 경우 이러한 속성에는 따옴표 또는 이스케이프 문자가 필요하지 않습니다. 다음 표에서는 이러한 새 설명자 필드를 나열합니다.

열 이름 Type 설명
SQL_CA_SS_XML_SCHEMACOLLECTION_CATALOG_NAME CharacterAttributePtr XML 스키마 컬렉션 이름이 정의된 카탈로그의 이름입니다. 카탈로그 이름을 찾을 수 없는 경우 이 변수에는 빈 문자열이 포함됩니다.

이 정보는 읽기/쓰기 필드인 IRD의 SQL_DESC_SS_XML_SCHEMACOLLECTION_CATALOG_NAME 레코드 필드에서 반환됩니다.
SQL_CA_SS_XML_SCHEMACOLLECTION_SCHEMA_NAM E CharacterAttributePtr XML 스키마 컬렉션 이름이 정의된 스키마의 이름입니다. 스키마 이름을 찾을 수 없는 경우 이 변수에는 빈 문자열이 포함됩니다.

이 정보는 읽기/쓰기 필드인 IRD의 SQL_DESC_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME 레코드 필드에서 반환됩니다.
SQL_CA_SS_XML_SCHEMACOLLECTION_NAME CharacterAttributePtr XML 스키마 컬렉션의 이름입니다. 이름을 찾을 수 없는 경우 이 변수에는 빈 문자열이 포함됩니다.

이 정보는 읽기/쓰기 필드인 IRD의 SQL_DESC_SS_XML_SCHEMACOLLECTION_NAME 레코드 필드에서 반환됩니다.

또한 SQL Server 2005(9.x)에서는 결과 집합의 UDT(사용자 정의 형식) 열 또는 저장 프로시저 또는 매개 변수가 있는 쿼리의 UDT 매개 변수에 대한 추가 정보를 제공하기 위해 새로운 드라이버 관련 설명자 필드를 도입했습니다. 영숫자가 아닌 문자를 포함하는 경우 이러한 속성에는 따옴표 또는 이스케이프 문자가 필요하지 않습니다. 다음 표에서는 이러한 새 설명자 필드를 나열합니다.

열 이름 Type 설명
SQL_CA_SS_UDT_CATALOG_NAME CharacterAttributePtr UDT가 포함된 카탈로그의 이름입니다.
SQL_CA_SS_UDT_SCHEMA_NAME CharacterAttributePtr UDT를 포함하는 스키마의 이름입니다.
SQL_CA_SS_UDT_TYPE_NAME CharacterAttributePtr UDT의 이름입니다.
SQL_CA_SS_UDT_ASSEMBLY_TYPE_NAME CharacterAttributePtr UDT의 정규화된 어셈블리 이름입니다.

기존 설명자 필드 식별자 SQL_DESC_TYPE_NAME UDT의 이름을 나타내는 데 사용됩니다. UDT 형식 열의 SQL_DESC_TYPE 필드는 SQL_SS_UDT.

향상된 날짜 및 시간 기능에 대한 SQLColAttribute 지원

날짜/시간 형식에 대해 반환되는 값은 매개 변수 및 결과 메타데이터의 "IRD 필드에 반환된 정보" 섹션을 참조하세요.

자세한 내용은 날짜 및 시간 개선 사항(ODBC)을 참조하세요.

큰 CLR UDT에 대한 SQLColAttribute 지원

SQLColAttribute 는 큰 CLR UDT(사용자 정의 형식)를 지원합니다. 자세한 내용은 ODBC(큰 CLR 사용자 정의 형식)를 참조하세요.

스파스 열에 대한 SQLColAttribute 지원

SQLColAttribute는 SQL_CA_SS_IS_COLUMN_SET 새 IRD(구현 행 설명자) 필드를 쿼리하여 열이 column_set 열인지 확인합니다.

자세한 내용은 스파스 열 지원(ODBC)을 참조하세요.

참고 항목

SQLColAttribute 함수
ODBC API 구현 정보
SQLSetStmtAttr