SQLColumns
SQLColumns는 CatalogName, TableName 또는 ColumnName 매개 변수에 값이 있는지 여부에 관계없이 SQL_SUCCESS를 반환합니다. 이 매개 변수에 잘못된 값이 사용되면 SQLFetch는 SQL_NO_DATA를 반환합니다.
[!참고]
큰 값 형식의 경우 모든 길이 매개 변수는 SQL_SS_LENGTH_UNLIMITED 값으로 반환됩니다.
SQLColumns는 정적 서버 커서에 대해 실행할 수 있습니다. 업데이트할 수 있는(동적 또는 키 집합) 커서에 대해 SQLColumns를 실행하려고 하면 커서 유형이 변경되었음을 나타내는 SQL_SUCCESS_WITH_INFO가 반환됩니다.
SQL Server Native Client ODBC 드라이버는 CatalogName 매개 변수의 두 부분으로 구성된 이름인 Linked_Server_Name.Catalog_Name을 사용하여 연결된 서버의 테이블에 대한 정보를 보고할 수 있도록 지원합니다.
TableName에 와일드카드를 사용하지 않는 ODBC 2.x 응용 프로그램의 경우 SQLColumns는 현재의 사용자가 소유하며 이름이 TableName과 일치하는 모든 테이블에 대한 정보를 반환합니다. 현재의 사용자가 TableName 매개 변수와 이름이 일치하는 테이블을 소유하지 않는 경우 SQLColumns는 다른 사용자가 소유하며 이름이 TableName 매개 변수와 일치하는 모든 테이블에 대한 정보를 반환합니다. 와일드카드를 사용하는 ODBC 2.x 응용 프로그램의 경우 SQLColumns는 TableName과 이름이 일치하는 모든 테이블을 반환합니다. ODBC 3.x 응용 프로그램의 경우 SQLColumns는 소유자 또는 와일드카드 사용 여부에 관계없이 TableName과 이름이 일치하는 모든 테이블을 반환합니다.
다음 표에서는 결과 집합에서 반환되는 열을 나열합니다.
열 이름 |
설명 |
---|---|
DATA_TYPE |
varchar(max) 데이터 형식에 대해 SQL_VARCHAR, SQL_VARBINARY 또는 SQL_WVARCHAR를 반환합니다. |
TYPE_NAME |
varchar(max), varbinary(max) 및 nvarchar(max) 데이터 형식에 대해 “varchar”, “varbinary” 또는 “nvarchar”를 반환합니다. |
COLUMN_SIZE |
varchar(max) 데이터 형식에 대해 SQL_SS_LENGTH_UNLIMITED를 반환하며, 이는 열 크기가 무제한임을 나타냅니다. |
BUFFER_LENGTH |
varchar(max) 데이터 형식에 대해 버퍼 크기가 무제한임을 나타내는 SQL_SS_LENGTH_UNLIMITED를 반환합니다. |
SQL_DATA_TYPE |
varchar(max) 데이터 형식에 대해 SQL_VARCHAR, SQL_VARBINARY 또는 SQL_WVARCHAR를 반환합니다. |
CHAR_OCTET_LENGTH |
char 열 또는 binary 열의 최대 길이를 반환합니다. 크기가 무제한인 경우 0을 반환합니다. |
SS_XML_SCHEMACOLLECTION_CATALOG_NAME |
XML 스키마 컬렉션 이름이 정의된 카탈로그의 이름을 반환합니다. 카탈로그 이름을 찾을 수 없는 경우 이 변수에는 빈 문자열이 포함됩니다. |
SS_XML_SCHEMACOLLECTION_SCHEMA_NAME |
XML 스키마 컬렉션 이름이 정의된 스키마의 이름을 반환합니다. 스키마 이름을 찾을 수 없는 경우 이 변수에는 빈 문자열이 포함됩니다. |
SS_XML_SCHEMACOLLECTION_NAME |
XML 스키마 컬렉션의 이름을 반환합니다. 이름을 찾을 수 없는 경우 이 변수에는 빈 문자열이 포함됩니다. |
SS_UDT_CATALOG_NAME |
UDT(사용자 정의 형식)를 포함하는 카탈로그의 이름입니다. |
SS_UDT_SCHEMA_NAME |
UDT를 포함하는 스키마의 이름입니다. |
SS_UDT_ASSEMBLY_TYPE_NAME |
UDT의 어셈블리가 명시된 정식 이름입니다. |
UDT의 경우 기존의 TYPE_NAME 열을 사용하여 UDT의 이름을 나타내므로 SQLColumns 또는 SQLProcedureColumns 결과 집합에 다른 열을 추가해서는 안 됩니다. UDT 열 또는 매개 변수의 DATA_TYPE은 SQL_SS_UDT입니다.
UDT 매개 변수의 경우 서버에서 이 정보를 반환하거나 요구하면 위에 정의된 새로운 드라이버별 설명자를 사용하여 UDT의 추가 메타데이터 속성을 얻거나 설정할 수 있습니다.
클라이언트가 SQL Server에 연결하고 SQLColumns를 호출한 경우 카탈로그 입력 매개 변수에 Null 또는 와일드카드 값을 사용하면 다른 카탈로그에서 정보가 반환되지 않으며, 현재 카탈로그에 대한 정보만 반환됩니다. 클라이언트는 먼저 SQLTables를 호출하여 원하는 테이블이 있는 카탈로그를 확인한 다음 해당 카탈로그 값을 SQLColumns 호출에 대한 카탈로그 입력 매개 변수로 사용하여 해당 테이블의 열에 대한 정보를 검색할 수 있습니다.
SQLColumns 및 테이블 반환 매개 변수
SQLColumns에서 반환하는 결과 집합은 SQL_SOPT_SS_NAME_SCOPE의 설정에 따라 다릅니다. 자세한 내용은 SQLSetStmtAttr을 참조하십시오. 테이블 반환 매개 변수에 다음 열이 추가되었습니다.
열 이름 |
데이터 형식 |
내용 |
---|---|---|
SS_IS_COMPUTED |
Smallint |
TABLE_TYPE의 열의 경우 열이 계산 열이면 SQL_TRUE이며 그렇지 않으면 SQL_FALSE입니다. |
SS_IS_IDENTITY |
Smallint |
열이 ID 열이면 SQL_TRUE이며 그렇지 않으면 SQL_FALSE입니다. |
테이블 반환 매개 변수에 대한 자세한 내용은 테이블 반환 매개 변수(ODBC)를 참조하십시오.
향상된 날짜 및 시간 기능에 대한 SQLColumns 지원
날짜/시간 형식에 대해 반환되는 값에 대한 자세한 내용은 카탈로그 메타데이터를 참조하십시오.
자세한 내용은 날짜/시간 기능 향상(ODBC)을 참조하십시오.
큰 CLR UDT에 대한 SQLColumns 지원
SQLColumns는 큰 CLR UDT(사용자 정의 형식)를 지원합니다. 자세한 내용은 큰 CLR 사용자 정의 형식(ODBC)을 참조하십시오.
스파스 열에 대한 SQLColumns 지원
SQLColumns의 결과 집합에 두 개의 SQL Server 특정 열이 추가되었습니다.
열 이름 |
데이터 형식 |
설명 |
---|---|---|
SS_IS_SPARSE |
Smallint |
열이 스파스 열이면 SQL_TRUE이며 그렇지 않으면 SQL_FALSE입니다. |
SS_IS_COLUMN_SET |
Smallint |
열이 column_set 열이면 SQL_TRUE이며 그렇지 않으면 SQL_FALSE입니다. |
ODBC 사양에 따라 SS_IS_SPARSE 및 SS_IS_COLUMN_SET는 SQL Server 2008 이전의 SQL Server 버전에 추가된 모든 드라이버별 열 앞에, 그리고 ODBC 자체에서 지정한 모든 열 뒤에 표시됩니다.
SQLColumns에서 반환하는 결과 집합은 SQL_SOPT_SS_NAME_SCOPE의 설정에 따라 다릅니다. 자세한 내용은 SQLSetStmtAttr을 참조하십시오.
ODBC의 스파스 열에 대한 자세한 내용은 스파스 열 지원(ODBC)을 참조하십시오.