다음을 통해 공유


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의 웨어하우스

현재 환경에서 쿼리할 수 있는 지정된 개체에 대한 열 정보를 반환합니다.

Transact-SQL 구문 표기 규칙

구문

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_OWNERTABLE_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';