추가 테이블 반환 매개 변수 메타데이터
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW)
테이블 반환 매개 변수에 대한 메타데이터를 검색하기 위해 애플리케이션은 SQLProcedureColumns를 호출합니다. 테이블 반환 매개 변수의 경우 SQLProcedureColumns는 단일 행을 반환합니다. 테이블 반환 매개 변수와 연결된 테이블 형식에 대한 스키마 및 카탈로그 정보를 제공하기 위해 SS_TYPE_CATALOG_NAME 및 SS_TYPE_SCHEMA_NAME 두 개의 SQL Server 관련 열이 추가되었습니다. ODBC 사양에 따라 SS_TYPE_CATALOG_NAME 및 SS_TYPE_SCHEMA_NAME 이전 버전의 SQL Server에 추가된 모든 드라이버별 열 앞에, ODBC 자체에 의해 위임된 모든 열 후에 표시됩니다.
다음 표에서는 테이블 반환 매개 변수에 중요한 열을 나열합니다.
열 이름 | 데이터 형식 | 값/설명 |
---|---|---|
DATA_TYPE | Smallint not NULL | SQL_SS_TABLE |
TYPE_NAME | NULL이 아닌 WVarchar(128) | 테이블 반환 매개 변수의 형식 이름입니다. |
COLUMN_SIZE | 정수 | NULL |
BUFFER_LENGTH | 정수 | 0 |
DECIMAL_DIGITS | Smallint | NULL |
NUM_PREC_RADIX | Smallint | NULL |
NULLABLE | Smallint not NULL | SQL_NULLABLE |
REMARKS | Varchar | NULL |
COLUMN_DEF | WVarchar(4000) | NULL |
SQL_DATA_TYPE | Smallint not NULL | SQL_SS_TABLE |
SQL_DATETIME_SUB | Smallint | NULL |
CHAR_OCTET_LENGTH | 정수 | NULL |
ORDINAL_POSITION | NULL이 아닌 정수 | 매개 변수의 서수 위치입니다. |
IS_NULLABLE | Varchar | "YES" |
SS_TYPE_CATALOG_NAME | NULL이 아닌 WVarchar(128) | 테이블 반환 매개 변수의 테이블 형식에 대한 형식 정의를 포함하는 카탈로그입니다. |
SS_TYPE_SCHEMA_NAME | NULL이 아닌 WVarchar(128) | 테이블 반환 매개 변수의 테이블 형식에 대한 형식 정의를 포함하는 스키마입니다. |
WVarchar 열은 ODBC 사양에서 Varchar로 정의되지만 실제로는 모든 최근 SQL Server ODBC 드라이버에서 WVarchar로 반환됩니다. 이 변경은 Unicide 지원이 ODBC 3.5 사양에 추가되었지만 명시적으로 호출되지 않은 경우에 수행되었습니다.
테이블 반환 매개 변수에 대한 추가 메타데이터를 얻기 위해 애플리케이션은 카탈로그 함수 SQLColumns 및 SQLPrimaryKeys를 사용합니다. 테이블 반환 매개 변수에 대해 이러한 함수를 호출하기 전에 애플리케이션은 문 특성 SQL_SOPT_SS_NAME_SCOPE SQL_SS_NAME_SCOPE_TABLE_TYPE 설정해야 합니다. 이 값은 애플리케이션에 실제 테이블이 아닌 테이블 형식에 대한 메타데이터가 필요했음을 나타냅니다. 그런 다음, 애플리케이션은 테이블 반환 매개 변수의 TYPE_NAME TableName 매개 변수로 전달합니다. SS_TYPE_CATALOG_NAME 및 SS_TYPE_SCHEMA_NAME 각각 CatalogName 및 SchemaName 매개 변수와 함께 테이블 반환 매개 변수의 카탈로그 및 스키마를 식별하는 데 사용됩니다. 애플리케이션에서 테이블 반환 매개 변수에 대한 메타데이터 검색을 마쳤으면 SQL_SOPT_SS_NAME_SCOPE 기본값인 SQL_SS_NAME_SCOPE_TABLE 다시 설정해야 합니다.
SQL_SOPT_SS_NAME_SCOPE가 SQL_SS_NAME_SCOPE_TABLE로 설정되면 연결된 서버에 대한 쿼리가 실패합니다. 서버 구성 요소가 포함된 카탈로그를 사용하여 SQLColumns 또는 SQLPrimaryKeys에 대한 호출이 실패합니다.