다음을 통해 공유


SQL Server 스키마 컬렉션

Microsoft .NET Framework Data Provider for SQL Server는 일반적인 스키마 컬렉션 외에도 추가 스키마 컬렉션을 지원합니다. 스키마 컬렉션은 사용 중인 SQL Server 버전에 따라 약간 다릅니다. 지원되는 스키마 컬렉션 목록을 확인하려면 인수가 없거나 스키마 컬렉션 이름 "MetaDataCollections"를 사용하여 메서드를 호출 GetSchema 합니다. 지원되는 스키마 컬렉션의 목록, 각 컬렉션에서 지원하는 제한의 수, 그리고 사용하는 식별자 부분의 수를 포함하는 DataTable가 반환됩니다.

데이터베이스

ColumnName 데이터 유형 설명
데이터베이스_이름 문자열 데이터베이스 이름입니다.
dbid Int16 데이터베이스 ID입니다.
생성_날짜 날짜와 시간 데이터베이스의 생성 날짜입니다.

외래 키

ColumnName 데이터 유형 설명
제약_카탈로그 문자열 제약 조건이 속하는 카탈로그입니다.
제약 스키마 문자열 제약 조건을 포함하는 스키마입니다.
제약 조건 이름 문자열 Name(이름):
테이블 카탈로그 문자열 테이블 이름 제약 조건의 일부입니다.
테이블 스키마 (TABLE_SCHEMA) 문자열 테이블을 포함하는 스키마입니다.
테이블 이름 문자열 테이블 이름
제약 유형 문자열 제약 조건의 유형입니다. "FOREIGN KEY"만 허용됩니다.
IS_DEFERRABLE (지연 가능) 문자열 제약 조건을 지연할 수 있는지 여부를 지정합니다. NO를 반환합니다.
초기 연기됨 문자열 제약 조건이 처음에 지연 가능한지 여부를 지정합니다. NO를 반환합니다.

인덱스

ColumnName 데이터 유형 설명
제약_카탈로그 문자열 인덱스가 속한 카탈로그입니다.
제약_스키마 문자열 인덱스를 포함하는 스키마입니다.
제약_이름 문자열 인덱스의 이름입니다.
테이블 카탈로그 문자열 인덱스가 연결된 테이블 이름입니다.
테이블 스키마 문자열 인덱스가 연결된 테이블을 포함하는 스키마입니다.
테이블 이름 문자열 테이블 이름입니다.
인덱스_이름 문자열 인덱스 이름

인덱스(SQL Server 2008)

.NET Framework 버전 3.5 SP1 및 SQL Server 2008부터 새 공간 형식, 파일 스트림 및 스파스 열을 지원하기 위해 다음 열이 Indexes 스키마 컬렉션에 추가되었습니다. 이러한 열은 이전 버전의 .NET Framework 및 SQL Server에서 지원되지 않습니다.

ColumnName 데이터 유형 설명
유형 설명 문자열 인덱스의 형식은 다음 중 하나입니다.

-힙
-클러스터형
- 비클러스터형
- XML
-공간

IndexColumns

ColumnName 데이터 유형 설명
제약_카탈로그 문자열 인덱스가 속한 카탈로그입니다.
제약_스키마 문자열 인덱스를 포함하는 스키마입니다.
제약_이름 문자열 인덱스의 이름입니다.
테이블 카탈로그 문자열 인덱스가 연결된 테이블 이름입니다.
테이블 스키마 문자열 인덱스가 연결된 테이블을 포함하는 스키마입니다.
테이블 이름 문자열 테이블 이름입니다.
column_name 문자열 인덱스가 연결된 열 이름입니다.
ordinal_position Int32 열의 순서 위치.
키 유형 바이트 개체 형식입니다.
인덱스_이름 문자열 인덱스 이름

절차

ColumnName 데이터 유형 설명
특정 카탈로그 문자열 카탈로그의 특정 이름입니다.
특정 스키마 문자열 스키마의 특정 이름입니다.
SPECIFIC_NAME 문자열 카탈로그의 특정 이름입니다.
루틴_카탈로그 문자열 저장 프로시저가 속한 카탈로그입니다.
루틴_스키마 문자열 저장 프로시저를 포함하는 스키마입니다.
ROUTINE_NAME 문자열 저장 프로시저의 이름입니다.
루틴 유형 문자열 저장 프로시저에 대한 PROCEDURE 및 함수의 FUNCTION을 반환합니다.
생성됨 날짜와 시간 프로시저가 생성된 시점입니다.
마지막_수정됨 날짜와 시간 프로시저가 마지막으로 수정된 시간입니다.

프로시저 매개 변수

ColumnName 데이터 유형 설명
특정 카탈로그 문자열 매개 변수인 프로시저의 카탈로그 이름입니다.
특정 스키마 문자열 이 매개 변수의 일부인 프로시저가 포함된 스키마입니다.
SPECIFIC_NAME 문자열 이 매개 변수가 속한 프로시저의 이름입니다.
서수 위치 Int32 1부터 시작하는 매개 변수의 서수 위치입니다. 프로시저의 반환 값은 0입니다.
매개변수_모드 문자열 입력 매개 변수의 경우 IN, 출력 매개 변수의 경우 OUT, 입력/출력 매개 변수인 경우 INOUT을 반환합니다.
IS_RESULT 문자열 함수인 프로시저의 결과를 나타내는 경우 YES를 반환합니다. 그렇지 않은 경우에는 NO를 반환합니다.
AS_LOCATOR 문자열 로케이터로 선언된 경우 YES를 반환합니다. 그렇지 않은 경우에는 NO를 반환합니다.
PARAMETER_NAME 문자열 매개 변수의 이름입니다. 함수의 반환 값에 해당하는 경우 NULL입니다.
데이터 유형 문자열 시스템 제공 데이터 형식입니다.
최대 문자 길이 Int32 이진 또는 문자 데이터 형식의 최대 문자 길이입니다. 그렇지 않으면 NULL을 반환합니다.
CHARACTER_OCTET_LENGTH (문자 옥텟 길이) Int32 이진 또는 문자 데이터 형식의 최대 길이(바이트)입니다. 그렇지 않으면 NULL을 반환합니다.
정렬_목록 문자열 매개 변수 데이터 정렬의 카탈로그 이름입니다. 문자 형식 중 하나가 아니면 NULL을 반환합니다.
COLLATION_SCHEMA (정렬 스키마) 문자열 항상 NULL을 반환합니다.
COLLATION_NAME 문자열 매개 변수의 데이터 정렬 이름입니다. 문자 형식 중 하나가 아니면 NULL을 반환합니다.
문자셋_카탈로그 문자열 매개 변수의 문자 집합 카탈로그 이름입니다. 문자 형식 중 하나가 아니면 NULL을 반환합니다.
문자 집합 스키마 문자열 항상 NULL을 반환합니다.
CHARACTER_SET_NAME 문자열 매개 변수의 문자 집합 이름입니다. 문자 형식 중 하나가 아니면 NULL을 반환합니다.
숫자 정밀도 바이트 근접한 숫자 데이터의 정밀도, 정확한 숫자 데이터, 정수 데이터 또는 통화 데이터입니다. 그렇지 않으면 NULL을 반환합니다.
숫자 정밀도 기수 Int16 근접한 숫자 데이터의 정밀도 기수, 정확한 숫자 데이터, 정수 데이터 또는 통화 데이터입니다. 그렇지 않으면 NULL을 반환합니다.
숫자 척도 Int32 근접한 숫자 데이터의 배율, 정확한 숫자 데이터, 정수 데이터 또는 통화 데이터입니다. 그렇지 않으면 NULL을 반환합니다.
날짜시간 정밀도 Int16 매개 변수 형식이 datetime 또는 smalldatetime인 경우 소수 자릿수(초)의 정밀도입니다. 그렇지 않으면 NULL을 반환합니다.
간격_유형 문자열 영. SQL Server에서 나중에 사용하도록 예약됩니다.
인터벌 정밀도 Int16 영. SQL Server에서 나중에 사용하도록 예약됩니다.

테이블

ColumnName 데이터 유형 설명
테이블 카탈로그 문자열 테이블의 카탈로그입니다.
테이블 스키마 (TABLE_SCHEMA) 문자열 테이블을 포함하는 스키마입니다.
테이블 이름 문자열 테이블 이름입니다.
TABLE_TYPE 문자열 테이블 형식 VIEW 또는 BASE TABLE 객체일 수 있습니다.

칼럼

ColumnName 데이터 유형 설명
테이블 카탈로그 문자열 테이블의 카탈로그입니다.
테이블 스키마 (TABLE_SCHEMA) 문자열 테이블을 포함하는 스키마입니다.
테이블 이름 문자열 테이블 이름입니다.
COLUMN_NAME 문자열 열 이름입니다.
서수 위치 Int32 열 ID 번호입니다.
열 기본값 문자열 열의 기본값
널 허용 여부 문자열 열의 Null 허용 여부입니다. 이 열에서 NULL을 허용하는 경우 이 열은 YES를 반환합니다. 그렇지 않으면 No가 반환됩니다.
데이터 유형 문자열 시스템 제공 데이터 형식입니다.
최대 문자 길이 Int32 – Sql8, Int16 – Sql7 이진 데이터, 문자 데이터 또는 텍스트와 이미지 데이터의 최대 길이(문자)입니다. 그렇지 않으면 NULL이 반환됩니다.
CHARACTER_OCTET_LENGTH (문자 옥텟 길이) Int32 – SQL8, Int16 – Sql7 이진 데이터, 문자 데이터 또는 텍스트 및 이미지 데이터의 최대 길이(바이트)입니다. 그렇지 않으면 NULL이 반환됩니다.
숫자 정밀도 부호 없는 바이트 근접한 숫자 데이터의 정밀도, 정확한 숫자 데이터, 정수 데이터 또는 통화 데이터입니다. 그렇지 않으면 NULL이 반환됩니다.
숫자 정밀도 기수 Int16 근접한 숫자 데이터의 정밀도 기수, 정확한 숫자 데이터, 정수 데이터 또는 통화 데이터입니다. 그렇지 않으면 NULL이 반환됩니다.
숫자 척도 Int32 근접한 숫자 데이터의 배율, 정확한 숫자 데이터, 정수 데이터 또는 통화 데이터입니다. 그렇지 않으면 NULL이 반환됩니다.
날짜시간 정밀도 Int16 datetime 및 SQL-92 간격 데이터 형식에 대한 하위 형식 코드입니다. 다른 데이터 형식의 경우 NULL이 반환됩니다.
문자셋_카탈로그 문자열 열이 문자 데이터 또는 텍스트 데이터 형식인 경우 문자 집합이 있는 데이터베이스를 나타내는 마스터를 반환합니다. 그렇지 않으면 NULL이 반환됩니다.
문자 집합 스키마 문자열 항상 NULL을 반환합니다.
CHARACTER_SET_NAME 문자열 이 열이 문자 데이터 또는 텍스트 데이터 형식인 경우 문자 집합의 고유 이름을 반환합니다. 그렇지 않으면 NULL이 반환됩니다.
정렬_목록 문자열 열이 문자 데이터 또는 텍스트 데이터 형식인 경우 데이터 정렬이 정의된 데이터베이스를 나타내는 마스터를 반환합니다. 그러지 않으면 이 열은 NULL로 표시됩니다.

열(SQL Server 2008)

.NET Framework 버전 3.5 SP1 및 SQL Server 2008부터 새 공간 형식, 파일 스트림 및 스파스 열을 지원하기 위해 다음 열이 Columns 스키마 컬렉션에 추가되었습니다. 이러한 열은 이전 버전의 .NET Framework 및 SQL Server에서 지원되지 않습니다.

ColumnName 데이터 유형 설명
IS_FILESTREAM 문자열 열에 FILESTREAM 특성이 있는 경우 YES입니다.

열에 FILESTREAM 특성이 없으면 NO입니다.
IS_SPARSE 문자열 열이 희소 열인 경우 "예"입니다.

열이 스파스 열이 아니면 아니요로 표시됩니다.
IS_COLUMN_SET 문자열 열이 열 집합 열인 경우 'YES'로 표시됩니다.

열이 열 집합 열이 아닌 경우, 아니요입니다.

AllColumns(SQL Server 2008)

.NET Framework 버전 3.5 SP1 및 SQL Server 2008부터는 스파스 열을 지원하기 위해 AllColumns 스키마 컬렉션이 추가되었습니다. AllColumns는 이전 버전의 .NET Framework 및 SQL Server에서 지원되지 않습니다.

AllColumns에는 Columns 스키마 컬렉션과 동일한 제한 사항 및 결과 DataTable 스키마가 있습니다. 유일한 차이점은 AllColumns에 Columns 스키마 컬렉션에 포함되지 않은 열 집합 열이 포함되어 있다는 것입니다. 다음 표에서는 이러한 열에 대해 설명합니다.

ColumnName 데이터 유형 설명
테이블 카탈로그 문자열 테이블의 카탈로그입니다.
테이블 스키마 (TABLE_SCHEMA) 문자열 테이블을 포함하는 스키마입니다.
테이블 이름 문자열 테이블 이름입니다.
COLUMN_NAME 문자열 열 이름입니다.
서수 위치 Int32 열 ID 번호입니다.
열 기본값 문자열 열의 기본값
널 허용 여부 문자열 열의 Null 허용 여부입니다. 이 열에서 NULL을 허용하는 경우 이 열은 YES를 반환합니다. 그렇지 않으면 NO가 반환됩니다.
데이터 유형 문자열 시스템 제공 데이터 형식입니다.
최대 문자 길이 Int32 이진 데이터, 문자 데이터 또는 텍스트와 이미지 데이터의 최대 길이(문자)입니다. 그렇지 않으면 NULL이 반환됩니다.
CHARACTER_OCTET_LENGTH (문자 옥텟 길이) Int32 이진 데이터, 문자 데이터 또는 텍스트 및 이미지 데이터의 최대 길이(바이트)입니다. 그렇지 않으면 NULL이 반환됩니다.
숫자 정밀도 부호 없는 바이트 근접한 숫자 데이터의 정밀도, 정확한 숫자 데이터, 정수 데이터 또는 통화 데이터입니다. 그렇지 않으면 NULL이 반환됩니다.
숫자 정밀도 기수 Int16 근접한 숫자 데이터의 정밀도 기수, 정확한 숫자 데이터, 정수 데이터 또는 통화 데이터입니다. 그렇지 않으면 NULL이 반환됩니다.
숫자 척도 Int32 근접한 숫자 데이터의 배율, 정확한 숫자 데이터, 정수 데이터 또는 통화 데이터입니다. 그렇지 않으면 NULL이 반환됩니다.
날짜시간 정밀도 Int16 datetime 및 SQL-92 간격 데이터 형식에 대한 하위 형식 코드입니다. 다른 데이터 형식의 경우 NULL이 반환됩니다.
문자셋_카탈로그 문자열 열이 문자 데이터 또는 텍스트 데이터 형식인 경우 문자 집합이 있는 데이터베이스를 나타내는 마스터를 반환합니다. 그렇지 않으면 NULL이 반환됩니다.
문자 집합 스키마 문자열 항상 NULL을 반환합니다.
CHARACTER_SET_NAME 문자열 이 열이 문자 데이터 또는 텍스트 데이터 형식인 경우 문자 집합의 고유 이름을 반환합니다. 그렇지 않으면 NULL이 반환됩니다.
정렬_목록 문자열 열이 문자 데이터 또는 텍스트 데이터 형식인 경우 데이터 정렬이 정의된 데이터베이스를 나타내는 마스터를 반환합니다. 그러지 않으면 이 열은 NULL로 표시됩니다.
IS_FILESTREAM 문자열 열에 FILESTREAM 특성이 있는 경우 YES입니다.

열에 FILESTREAM 특성이 없으면 NO입니다.
IS_SPARSE 문자열 열이 희소 열인 경우 "예"입니다.

열이 스파스 열이 아니면 아니요로 표시됩니다.
IS_COLUMN_SET 문자열 열이 열 집합 열인 경우 'YES'로 표시됩니다.

열이 열 집합 열이 아닌 경우, 아니요입니다.

ColumnSetColumns(SQL Server 2008)

.NET Framework 버전 3.5 SP1 및 SQL Server 2008부터는 스파스 열을 지원하기 위해 ColumnSetColumns 스키마 컬렉션이 추가되었습니다. ColumnSetColumns는 이전 버전의 .NET Framework 및 SQL Server에서 지원되지 않습니다. ColumnSetColumns 스키마 컬렉션은 열 집합의 모든 열에 대한 스키마를 반환합니다. 다음 표에서는 이러한 열에 대해 설명합니다.

ColumnName 데이터 유형 설명
테이블 카탈로그 문자열 테이블의 카탈로그입니다.
테이블 스키마 (TABLE_SCHEMA) 문자열 테이블을 포함하는 스키마입니다.
테이블 이름 문자열 테이블 이름입니다.
COLUMN_NAME 문자열 열 이름입니다.
서수 위치 Int32 열 ID 번호입니다.
열 기본값 문자열 열의 기본값
널 허용 여부 문자열 열의 Null 허용 여부입니다. 이 열에서 NULL을 허용하는 경우 이 열은 YES를 반환합니다. 그렇지 않으면 NO가 반환됩니다.
데이터 유형 문자열 시스템 제공 데이터 형식입니다.
최대 문자 길이 Int32 이진 데이터, 문자 데이터 또는 텍스트와 이미지 데이터의 최대 길이(문자)입니다. 그렇지 않으면 NULL이 반환됩니다.
CHARACTER_OCTET_LENGTH (문자 옥텟 길이) Int32 이진 데이터, 문자 데이터 또는 텍스트 및 이미지 데이터의 최대 길이(바이트)입니다. 그렇지 않으면 NULL이 반환됩니다.
숫자 정밀도 부호 없는 바이트 근접한 숫자 데이터의 정밀도, 정확한 숫자 데이터, 정수 데이터 또는 통화 데이터입니다. 그렇지 않으면 NULL이 반환됩니다.
숫자 정밀도 기수 Int16 근접한 숫자 데이터의 정밀도 기수, 정확한 숫자 데이터, 정수 데이터 또는 통화 데이터입니다. 그렇지 않으면 NULL이 반환됩니다.
숫자 척도 Int32 근접한 숫자 데이터의 배율, 정확한 숫자 데이터, 정수 데이터 또는 통화 데이터입니다. 그렇지 않으면 NULL이 반환됩니다.
날짜시간 정밀도 Int16 datetime 및 SQL-92 간격 데이터 형식에 대한 하위 형식 코드입니다. 다른 데이터 형식의 경우 NULL이 반환됩니다.
문자셋_카탈로그 문자열 열이 문자 데이터 또는 텍스트 데이터 형식인 경우 문자 집합이 있는 데이터베이스를 나타내는 마스터를 반환합니다. 그렇지 않으면 NULL이 반환됩니다.
문자 집합 스키마 문자열 항상 NULL을 반환합니다.
CHARACTER_SET_NAME 문자열 이 열이 문자 데이터 또는 텍스트 데이터 형식인 경우 문자 집합의 고유 이름을 반환합니다. 그렇지 않으면 NULL이 반환됩니다.
정렬_목록 문자열 열이 문자 데이터 또는 텍스트 데이터 형식인 경우 데이터 정렬이 정의된 데이터베이스를 나타내는 마스터를 반환합니다. 그러지 않으면 이 열은 NULL로 표시됩니다.
IS_FILESTREAM 문자열 열에 FILESTREAM 특성이 있는 경우 YES입니다.

열에 FILESTREAM 특성이 없으면 NO입니다.
IS_SPARSE 문자열 열이 희소 열인 경우 "예"입니다.

열이 스파스 열이 아니면 아니요로 표시됩니다.
IS_COLUMN_SET 문자열 열이 열 집합 열인 경우 'YES'로 표시됩니다.

열이 열 집합 열이 아닌 경우, 아니요입니다.

사용자

ColumnName 데이터 유형 설명
사용자 식별자 (uid) Int16 이 데이터베이스에서 고유한 사용자 ID입니다. 1은 데이터베이스 소유자입니다.
user_name 문자열 이 데이터베이스에서 고유한 사용자 이름 또는 그룹 이름입니다.
생성일 날짜와 시간 계정이 추가된 날짜입니다.
업데이트 날짜 날짜와 시간 계정이 마지막으로 변경된 날짜입니다.

조회수

ColumnName 데이터 유형 설명
테이블 카탈로그 문자열 뷰의 카탈로그입니다.
테이블 스키마 (TABLE_SCHEMA) 문자열 뷰를 포함하는 스키마입니다.
테이블 이름 문자열 보기 이름입니다.
체크 옵션 문자열 WITH CHECK OPTION의 유형입니다. 원래 뷰가 WITH CHECK OPTION을 사용하여 생성된 경우 CASCADE입니다. 그렇지 않으면 NONE이 반환됩니다.
IS_UPDATABLE 문자열 보기를 업데이트할 수 있는지 여부를 지정합니다. 항상 NO를 반환합니다.

열 보기

ColumnName 데이터 유형 설명
카탈로그 보기 문자열 뷰의 카탈로그입니다.
뷰_스키마 문자열 뷰를 포함하는 스키마입니다.
뷰_이름 문자열 보기 이름입니다.
테이블 카탈로그 문자열 이 뷰와 연결된 테이블의 카탈로그입니다.
테이블 스키마 (TABLE_SCHEMA) 문자열 이 뷰와 연결된 테이블이 포함된 스키마입니다.
테이블 이름 문자열 뷰와 연결된 테이블의 이름입니다. 기본 테이블입니다.
COLUMN_NAME 문자열 열 이름입니다.

사용자 정의 유형

ColumnName 데이터 유형 설명
조립체_이름 문자열 어셈블리에 대한 파일의 이름입니다.
udt_name 문자열 어셈블리의 클래스 이름입니다.
버전_주요 객체 주 버전 번호입니다.
version_minor 객체 마이너 버전 번호입니다.
버전_빌드 객체 빌드 번호입니다.
버전_개정 객체 수정 번호입니다.
문화정보 객체 UDT와 관련된 문화 정보
공개 키 객체 이 어셈블리에서 사용하는 공개 키입니다.
고정 길이 여부 불리언 (Boolean) 형식의 길이가 항상 max_length 같은지 여부를 지정합니다.
최대_길이 Int16 형식의 최대 길이(바이트)입니다.
생성일 날짜와 시간 어셈블리를 만들거나 등록한 날짜입니다.
권한 세트 설명 문자열 어셈블리에 대한 사용 권한 집합/보안 수준의 친숙한 이름입니다.

참고하십시오