다음을 통해 공유


sp_columns(Transact-SQL)

현재 환경에서 쿼리할 수 있는 지정된 테이블 또는 뷰에 관한 열 정보를 반환합니다.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

sp_columns [ @table_name = ] object  [ , [ @table_owner = ] owner ] 
     [ , [ @table_qualifier = ] qualifier ] 
     [ , [ @column_name = ] column ] 
     [ , [ @ODBCVer = ] ODBCVer ]

인수

  • [ @table_name=] object
    카탈로그 정보를 반환하는 데 사용되는 테이블 또는 뷰의 이름입니다. object_name은 nvarchar(384)이며 기본값은 없습니다. 와일드카드 패턴 일치가 지원됩니다.

  • [ @table_owner=] owner
    카탈로그 정보를 반환하는 데 사용되는 테이블 또는 뷰의 개체 소유자입니다. owner는 nvarchar(384)이며 기본값은 NULL입니다. 와일드카드 패턴 일치가 지원됩니다. owner를 지정하지 않은 경우 기본 DBMS의 기본 테이블 또는 뷰 표시 규칙이 적용됩니다.

    현재 사용자가 지정된 이름의 테이블 또는 뷰를 소유한 경우 해당 테이블의 열이 반환됩니다. owner가 지정되지 않았고 현재 사용자가 object에 지정된 테이블 또는 뷰를 소유하지 않은 경우 sp_columns에서는 데이터베이스 소유자가 소유한 object에서 지정된 테이블 또는 뷰를 찾습니다. 테이블 또는 뷰가 있으면 테이블의 열이 반환됩니다.

  • [ @table_qualifier=] qualifier
    테이블 또는 뷰 한정자의 이름입니다. qualifier는 sysname이며 기본값은 NULL입니다. 다양한 DBMS 제품에서 테이블에 대해 세 부분으로 구성된 이름(qualifier**.owner.**name)을 지원합니다. SQL Server에서 이 열은 데이터베이스 이름을 나타냅니다. 일부 제품에서는 테이블 데이터베이스 환경의 서버 이름을 나타냅니다.

  • [ @column_name=] column
    카탈로그 정보 중 한 열만을 사용하고자 할 때 지정하는 단일 열입니다. column은 nvarchar(384)이며 기본값은 NULL입니다. column을 지정하지 않으면 모든 열이 반환됩니다. SQL Server에서 column은 syscolumns 테이블에 나열된 열 이름을 나타냅니다. 와일드카드 패턴 일치가 지원됩니다. 상호 운용성을 극대화하려면 게이트웨이 클라이언트가 SQL-92 표준 패턴 일치(% 및 _ 와일드카드 문자)만을 사용해야 합니다.

  • [ @ODBCVer=] ODBCVer
    사용하고 있는 ODBC 버전입니다. ODBCVer은 int이며 기본값은 2입니다. 이는 ODBC 버전 2를 나타냅니다. 유효한 값은 2 또는 3입니다. 버전 2와 3의 동작 차이에 대한 자세한 내용은 ODBC SQLColumns 사양을 참조하십시오.

반환 코드 값

없음

결과 집합

sp_columns 카탈로그 저장 프로시저는 ODBC의 SQLColumns와 같습니다. 반환된 결과는 TABLE_QUALIFIER, TABLE_OWNER, 그리고 TABLE_NAME 순으로 정렬됩니다.

열 이름

데이터 형식

설명

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 열의 반환 값은 10을 기준으로 합니다.

LENGTH

int

데이터의 전송 크기입니다.1

SCALE

smallint

소수점 오른쪽 자릿수입니다.

RADIX

smallint

숫자 데이터 형식의 기수입니다.

NULLABLE

smallint

NULL 허용 여부를 지정합니다.

1 = NULL을 사용할 수 있습니다.

0 = NULL을 사용할 수 없습니다.

REMARKS

varchar(254)

이 필드는 항상 NULL을 반환합니다.

COLUMN_DEF

nvarchar(4000)

열의 기본값입니다.

SQL Server 2008 및 SQL Server 2005는 카탈로그 메타데이터에 SQL 식을 디코딩하고 저장하는 방식에서 SQL Server 2000과 다릅니다. 디코딩된 식의 의미 체계는 원본 텍스트와 동일하지만 구문은 일치하지 않을 수 있습니다. 예를 들어 공백은 디코딩된 식에서 제거됩니다. 자세한 내용은 SQL Server 2008 데이터베이스 엔진 기능의 동작 변경 내용를 참조하십시오.

SQL_DATA_TYPE

smallint

설명자의 TYPE 필드에 표시된 SQL 데이터 형식의 값입니다. 이 열은 datetime 및 SQL-92 interval 데이터 형식을 제외하고는 DATA_TYPE 열과 동일합니다. 이 열은 항상 값을 반환합니다.

SQL_DATETIME_SUB

smallint

datetime 및 SQL-92 interval 데이터 형식에 대한 하위 형식 코드입니다. 이 열은 다른 데이터 형식에 대해서는 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 데이터 형식입니다. 자세한 내용은 데이터 형식(Transact-SQL)을 참조하십시오.

1 자세한 내용은 Microsoft ODBC 설명서를 참조하십시오.

사용 권한

스키마에 대한 SELECT 사용 권한이 필요합니다.

주의

sp_columns는 구분 식별자에 대한 요구 사항을 따릅니다. 자세한 내용은 구분 식별자(데이터베이스 엔진)를 참조하십시오.

다음 예에서는 지정된 테이블의 열 정보를 반환합니다.

USE AdventureWorks
GO
EXEC sp_columns @table_name = N'Department',
   @table_owner = N'HumanResources';