다음을 통해 공유


COLUMNS(Transact-SQL)

현재 데이터베이스에서 현재 사용자가 액세스할 수 있는 열마다 한 행을 반환합니다.

이러한 뷰에서 정보를 검색하려면 INFORMATION_SCHEMA.view_name 형식으로 정규화된 이름을 지정합니다.

열 이름

데이터 형식

설명

TABLE_CATALOG

nvarchar(128)

테이블 한정자입니다.

TABLE_SCHEMA

nvarchar(128)

테이블이 포함된 스키마의 이름입니다.

중요 정보중요
개체의 스키마를 확인하기 위해 INFORMATION_SCHEMA 뷰를 사용하지 마십시오. 개체의 스키마를 확인하는 신뢰할 수 있는 유일한 방법은 sys.objects 카탈로그 뷰를 쿼리하거나 OBJECT_SCHEMA_NAME 함수를 사용하는 것입니다.

TABLE_NAME

nvarchar(128)

테이블의 이름입니다.

COLUMN_NAME

nvarchar(128)

열 이름입니다.

ORDINAL_POSITION

int

열 ID입니다.

COLUMN_DEFAULT

nvarchar(4000)

열의 기본값입니다.

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

IS_NULLABLE

varchar(3)

열의 NULL 허용 여부입니다. 열이 NULL을 허용하는 경우에는 이 열이 YES를 반환하고 허용하지 않는 경우에는 NO가 반환됩니다.

DATA_TYPE

nvarchar(128)

시스템 제공 데이터 형식입니다.

CHARACTER_MAXIMUM_LENGTH

int

이진 데이터, 문자 데이터 또는 텍스트와 이미지 데이터의 최대 길이(문자)입니다.

xml 및 큰 값 유형의 데이터인 경우 -1입니다. 다른 데이터 형식에 대해서는 NULL이 반환됩니다. 자세한 내용은 데이터 형식(Transact-SQL)을 참조하십시오.

CHARACTER_OCTET_LENGTH

int

이진 데이터, 문자 데이터 또는 텍스트와 이미지 데이터의 최대 길이(바이트)입니다.

xml 및 큰 값 유형의 데이터인 경우 -1입니다. 다른 데이터 형식에 대해서는 NULL이 반환됩니다.

NUMERIC_PRECISION

tinyint

근사 숫자 데이터, 정확한 숫자 데이터, 정수 데이터 또는 통화 데이터의 전체 자릿수입니다. 다른 데이터 형식에 대해서는 NULL이 반환됩니다.

NUMERIC_PRECISION_RADIX

smallint

근사 숫자 데이터, 정확한 숫자 데이터, 정수 데이터 또는 통화 데이터의 전체 자릿수 기수입니다. 다른 데이터 형식에 대해서는 NULL이 반환됩니다.

NUMERIC_SCALE

int

근사 숫자 데이터, 정확한 숫자 데이터, 정수 데이터 또는 통화 데이터의 소수 자릿수입니다. 다른 데이터 형식에 대해서는 NULL이 반환됩니다.

DATETIME_PRECISION

smallint

datetime 및 ISO interval 데이터 형식에 대한 하위 유형 코드입니다. 다른 데이터 형식에 대해서는 NULL이 반환됩니다.

CHARACTER_SET_CATALOG

nvarchar(128)

master를 반환합니다. 이것은 열이 문자 데이터 또는 text 데이터 형식인 경우 문자 집합이 있는 데이터베이스를 나타냅니다. 다른 데이터 형식에 대해서는 NULL이 반환됩니다.

CHARACTER_SET_SCHEMA

nvarchar(128)

항상 NULL을 반환합니다.

CHARACTER_SET_NAME

nvarchar(128)

열이 문자 데이터 또는 text 데이터 형식인 경우 문자 집합의 고유한 이름을 반환합니다. 다른 데이터 형식에 대해서는 NULL이 반환됩니다.

COLLATION_CATALOG

nvarchar(128)

항상 NULL을 반환합니다.

COLLATION_SCHEMA

nvarchar(128)

항상 NULL을 반환합니다.

COLLATION_NAME

nvarchar(128)

열이 문자 데이터 또는 text 데이터 형식인 경우 데이터 정렬의 고유한 이름을 반환합니다. 다른 데이터 형식에 대해서는 NULL이 반환됩니다.

DOMAIN_CATALOG

nvarchar(128)

열이 별칭 데이터 형식인 경우 이 열은 사용자 정의 데이터 형식이 생성된 데이터베이스 이름이 됩니다. 다른 데이터 형식에 대해서는 NULL이 반환됩니다.

DOMAIN_SCHEMA

nvarchar(128)

열이 사용자 정의 데이터 형식인 경우 이 열은 사용자 정의 데이터 형식의 스키마 이름을 반환합니다. 다른 데이터 형식에 대해서는 NULL이 반환됩니다.

중요 정보중요
데이터 형식의 스키마를 확인하기 위해 INFORMATION_SCHEMA 뷰를 사용하지 마십시오. 형식의 스키마를 확인하는 신뢰할 수 있는 유일한 방법은 TYPEPROPERTY 함수를 사용하는 것입니다.

DOMAIN_NAME

nvarchar(128)

열이 사용자 정의 데이터 형식인 경우 이 열은 사용자 정의 데이터 형식의 이름이 됩니다. 다른 데이터 형식에 대해서는 NULL이 반환됩니다.

주의

INFORMATION_SCHEMA.COLUMNS 뷰의 ORDINAL_POSITION 열은 COLUMNS_UPDATED 함수에서 반환된 열의 비트 패턴과 호환되지 않습니다. COLUMNS_UPDATED와 호환되는 비트 패턴을 얻으려면 INFORMATION_SCHEMA.COLUMNS 뷰를 쿼리할 때 COLUMNPROPERTY 시스템 함수의 ColumnID 속성을 참조해야 합니다. 예를 들면 다음과 같습니다.

USE AdventureWorks;
GO

SELECT COLUMN_NAME, COLUMNPROPERTY(OBJECT_ID(TABLE_SCHEMA + '.' + TABLE_NAME), COLUMN_NAME, 'ColumnID') AS COLUMN_ID
FROM AdventureWorks.INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Employee';

다음 예에서는 데이터베이스에서 NULL 값을 가질 수 없는 모든 테이블과 뷰의 열을 반환합니다.

USE AdventureWorks;
GO

SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE IS_NULLABLE = 'NO'
ORDER BY DATA_TYPE;