sp_columns(Transact-SQL)
적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW) Microsoft Fabric의 SQL 분석 엔드포인트 Microsoft Fabric의 웨어하우스
현재 환경에서 쿼리할 수 있는 지정된 개체에 대한 열 정보를 반환합니다.
구문
sp_columns
[ @table_name = ] N'table_name'
[ , [ @table_owner = ] N'table_owner' ]
[ , [ @table_qualifier = ] N'table_qualifier' ]
[ , [ @column_name = ] N'column_name' ]
[ , [ @ODBCVer = ] ODBCVer ]
[ ; ]
인수
[ @table_name = ] N'table_name'
@table_name nvarchar(384)이며 기본값은 없습니다.
카탈로그 정보를 반환하는 데 사용되는 개체의 이름입니다. @table_name 테이블, 뷰 또는 테이블 반환 함수와 같은 열의 다른 개체일 수 있습니다. @table_name nvarchar(384)이며 기본값은 없습니다. 와일드카드 패턴 일치가 지원됩니다.
[ @table_owner = ] N'table_owner'
카탈로그 정보를 반환하는 데 사용되는 개체의 개체 소유자입니다. @table_owner 기본값NULL
인 nvarchar(384)입니다. 와일드카드 패턴 일치가 지원됩니다. @table_owner 지정되지 않은 경우 기본 DBMS의 기본 개체 표시 유형 규칙이 적용됩니다.
현재 사용자가 지정된 이름의 개체를 소유한 경우 해당 개체의 열이 반환됩니다. @table_owner 지정되지 않고 현재 사용자가 지정된 @table_namesp_columns
있는 개체를 소유하지 않는 경우 데이터베이스 소유자가 소유한 지정된 @table_name 있는 개체를 찾습니다. 개체 열이 있으면 해당 개체의 열이 반환됩니다.
[ @table_qualifier = ] N'table_qualifier'
@table_qualifier sysname이며 기본값은 .입니다NULL
.
개체 한정자의 이름입니다. @table_qualifier sysname이며 기본값은 .입니다NULL
. 다양한 DBMS 제품은 개체(<qualifier>.<owner>.<name>
)에 대해 세 부분으로 구성된 명명을 지원합니다. SQL Server에서 이 열은 데이터베이스 이름을 나타냅니다. 일부 제품에서는 개체 데이터베이스 환경의 서버 이름을 나타냅니다.
[ @column_name = ] N'column_name'
단일 열이며 카탈로그 정보의 열이 하나만 필요한 경우에 사용됩니다. @column_name 기본값NULL
인 nvarchar(384)입니다. @column_name 지정하지 않으면 모든 열이 반환됩니다. SQL Server에서 @column_name 테이블에 나열된 syscolumns
열 이름을 나타냅니다. 와일드카드 패턴 일치가 지원됩니다. 최대 상호 운용성을 위해 게이트웨이 클라이언트는 SQL-92 표준 패턴 일치( %
및 _
와일드카드 문자)만 가정해야 합니다.
[ @ODBCVer = ] ODBCVer
사용 중인 ODBC 버전입니다. @ODBCVer 기본값2
인 int입니다. 이는 ODBC 버전 2를 나타냅니다. 유효한 값은 2
또는 3
입니다. 버전 2와 3 간의 동작 차이는 ODBC SQLColumns
사양을 참조하세요.
반환 코드 값
없음
결과 집합
sp_columns
카탈로그 저장 프로시저는 ODBC와 동일합니다SQLColumns
. 반환된 결과는 , TABLE_OWNER
및 TABLE_NAME
.로 TABLE_QUALIFIER
정렬됩니다.
열 이름 | 데이터 형식 | 설명 |
---|---|---|
TABLE_QUALIFIER |
sysname | 개체 한정자 이름입니다. 이 필드는 다음과 같습니다 NULL . |
TABLE_OWNER |
sysname | 개체 소유자 이름입니다. 이 필드는 항상 값을 반환합니다. |
TABLE_NAME |
sysname | 개체 이름입니다. 이 필드는 항상 값을 반환합니다. |
COLUMN_NAME |
sysname | 반환된 각 열의 열 이름입니다 TABLE_NAME . 이 필드는 항상 값을 반환합니다. |
DATA_TYPE |
smallint | ODBC 데이터 형식에 대한 정수 코드입니다. 이 데이터 형식을 ODBC 형식에 매핑할 수 없는 경우는 NULL 다음과 같습니다. 네이티브 데이터 형식 이름이 열에 TYPE_NAME 반환됩니다. |
TYPE_NAME |
sysname | 데이터 형식을 나타내는 문자열입니다. 이 이름은 기본 DBMS에서 제공합니다. |
PRECISION |
int | 유효 자릿수입니다. 열의 PRECISION 반환 값은 base 10입니다. |
LENGTH |
int | 데이터의 전송 크기입니다. 1 |
SCALE |
smallint | 소수점 오른쪽에 있는 자릿수입니다. |
RADIX |
smallint | 숫자 데이터 형식의 기준입니다. |
NULLABLE |
smallint | NULL 허용 여부를 지정합니다.1 = NULL 가 가능합니다.0 = NOT NULL . |
REMARKS |
varchar(254) | 이 필드는 항상 .NULL |
COLUMN_DEF |
nvarchar(4000) | 열의 기본값입니다. |
SQL_DATA_TYPE |
smallint | 설명자의 TYPE 필드에 표시되는 SQL 데이터 형식의 값입니다. 이 열은 datetime 및 SQL-92 간격 데이터 형식을 제외하고 열과 동일합니다DATA_TYPE . 이 열은 항상 값을 반환합니다. |
SQL_DATETIME_SUB |
smallint | datetime 및 SQL-92 간격 데이터 형식에 대한 하위 형식 코드입니다. 다른 데이터 형식의 경우 이 열은 .NULL |
CHAR_OCTET_LENGTH |
int | 문자 또는 정수 데이터 형식 열의 최대 길이(바이트)입니다. 다른 모든 데이터 형식에 대해 이 열은 .를 반환합니다 NULL . |
ORDINAL_POSITION |
int | 개체에 있는 열의 서수 위치입니다. 개체의 첫 번째 열은 1입니다. 이 열은 항상 값을 반환합니다. |
IS_NULLABLE |
varchar(254) | 개체에 있는 열의 null 허용 여부입니다. ISO 규칙을 따라 Null 허용 여부를 확인합니다. ISO SQL 규격 DBMS는 빈 문자열을 반환할 수 없습니다.YES = 열에 포함 NULL 할 수 있습니다.NO = 열에 포함 NULL 할 수 없습니다.이 열은 null 허용을 알 수 없는 경우 길이가 0인 문자열을 반환합니다. 이 열에 대해 반환되는 값은 열에 대해 반환된 값과 NULLABLE 다릅니다. |
SS_DATA_TYPE |
tinyint | 확장 저장 프로시저에서 사용하는 SQL Server 데이터 형식입니다. 자세한 내용은 데이터 형식을 참조하십시오. |
1 자세한 내용은 ODBC 개요를 참조 하세요.
사용 권한
스키마에 SELECT
대한 사용 권한 및 VIEW DEFINITION
요구 사항
설명
sp_columns
는 구분된 식별자에 대한 요구 사항을 따릅니다. 자세한 내용은 데이터베이스 식별자를 참조 하세요.
예제
이 문서의 Transact-SQL 코드 샘플은 AdventureWorks2022
또는 AdventureWorksDW2022
샘플 데이터베이스를 사용하며, 이는 Microsoft SQL Server 예시 및 커뮤니티 프로젝트(Microsoft SQL Server Samples and Community Projects) 홈 페이지에서 다운로드할 수 있습니다.
다음 예에서는 지정된 테이블의 열 정보를 반환합니다.
USE AdventureWorks2022;
GO
EXEC sp_columns
@table_name = N'Department',
@table_owner = N'HumanResources';
예: Azure Synapse Analytics 및 분석 플랫폼 시스템(PDW)
다음 예에서는 지정된 테이블의 열 정보를 반환합니다.
USE AdventureWorksDW2022;
GO
EXEC sp_columns
@table_name = N'DimEmployee',
@table_owner = N'dbo';