SQL Server 스키마 컬렉션(ADO.NET)
업데이트: November 2007
Microsoft .NET Framework Data Provider for SQL Server는 공통 스키마 컬렉션뿐만 아니라 다른 스키마 컬렉션도 추가적으로 지원합니다. 지원되는 스키마 컬렉션은 현재 사용하고 있는 SQL Sever 버전에 따라 조금씩 다를 수 있습니다. 지원되는 스키마 컬렉션 목록을 확인하려면 GetSchema 메서드를 인수 없이 호출하거나 "MetaDataCollections"라는 스키마 컬렉션 이름을 사용하여 호출하십시오. 그러면 지원되는 스키마 컬렉션의 목록, 각자 지원하는 제약 조건 수 및 사용하는 식별자 부분 수가 포함된 DataTable이 반환됩니다.
Databases
ColumnName |
DataType |
설명 |
---|---|---|
database_name |
String |
데이터베이스 이름입니다. |
Dbid |
Int16 |
데이터베이스 ID입니다. |
create_date |
DateTime |
데이터베이스를 만든 날짜입니다. |
Foreign Keys
ColumnName |
DataType |
설명 |
---|---|---|
constraint_catalog |
String |
제약 조건이 속하는 카탈로그입니다. |
constraint_schema |
String |
제약 조건을 포함하는 스키마입니다. |
constraint_name |
String |
이름입니다. |
table_catalog |
String |
제약 조건이 속하는 테이블 이름입니다. |
table_schema |
String |
해당 테이블을 포함하는 스키마입니다. |
table_name |
String |
테이블 이름입니다. |
constraint_type |
String |
제약 조건의 형식입니다. "FOREIGN KEY"만 허용됩니다. |
is_deferrable |
String |
제약 조건의 지연 가능 여부를 지정합니다. NO를 반환합니다. |
initially_deferred |
String |
제약 조건의 초기 지연 가능 여부를 지정합니다. NO를 반환합니다. |
Indexes
ColumnName |
DataType |
설명 |
---|---|---|
constraint_catalog |
String |
인덱스가 속하는 카탈로그입니다. |
constraint_schema |
String |
해당 인덱스를 포함하는 스키마입니다. |
constraint_name |
String |
인덱스의 이름입니다. |
table_catalog |
String |
인덱스가 연결되는 테이블 이름입니다. |
table_schema |
String |
인덱스가 연결되는 테이블을 포함하는 스키마입니다. |
table_name |
String |
테이블 이름입니다. |
Indexes(SQL Server 2008)
.NET Framework 버전 3.5 SP1 및 SQL Server 2008부터는 새로운 공간 유형, 파일 스트림 및 스파스 열을 지원하도록 Indexes 스키마 컬렉션에 다음과 같은 열이 추가되었습니다. 이러한 열은 이전 버전의 .NET Framework 및 SQL Server에서는 지원되지 않습니다.
ColumnName |
DataType |
설명 |
---|---|---|
type_desc |
String |
인덱스 형식은 다음 중 하나입니다.
|
IndexColumns
ColumnName |
DataType |
설명 |
---|---|---|
constraint_catalog |
String |
인덱스가 속하는 카탈로그입니다. |
constraint_schema |
String |
해당 인덱스를 포함하는 스키마입니다. |
constraint_name |
String |
인덱스의 이름입니다. |
table_catalog |
String |
인덱스가 연결되는 테이블 이름입니다. |
table_schema |
String |
인덱스가 연결되는 테이블을 포함하는 스키마입니다. |
table_name |
String |
테이블 이름입니다. |
column_name |
String |
인덱스가 연결되는 ColumnName입니다. |
ordinal_position |
Int32 |
열 서수 위치입니다. |
KeyType |
UInt16 |
개체 형식입니다. |
Procedures
이 컬렉션은 SQL Server 2000 이상에서만 사용할 수 있습니다.
ColumnName |
DataType |
설명 |
---|---|---|
specific_catalog |
String |
카탈로그의 특정 이름입니다. |
specific_schema |
String |
스키마의 특정 이름입니다. |
specific_name |
String |
카탈로그의 특정 이름입니다. |
routine_catalog |
String |
저장 프로시저가 속하는 카탈로그입니다. |
routine_schema |
String |
저장 프로시저를 포함하는 스키마입니다. |
routine_name |
String |
저장 프로시저의 이름입니다. |
routine_type |
String |
저장 프로시저에 대해서는 PROCEDURE를 반환하고 함수에 대해서는 FUNCTION을 반환합니다. |
created |
DateTime |
프로시저가 만들어진 시간입니다. |
last_altered |
DateTime |
프로시저가 마지막으로 수정된 시간입니다. |
Procedure Parameters
ColumnName |
DataType |
설명 |
---|---|---|
specific_catalog |
String |
이 항목이 매개 변수인 프로시저의 카탈로그 이름입니다. |
specific_schema |
String |
이 매개 변수가 속하는 프로시저가 포함된 스키마입니다. |
specific_name |
String |
이 매개 변수가 속하는 프로시저의 이름입니다. |
ordinal_position |
Int16 |
1에서 시작하는 매개 변수의 서수 위치이며, 프로시저의 반환 값인 경우 0입니다. |
parameter_mode |
String |
입력 매개 변수이면 IN을, 출력 매개 변수이면 OUT을, 입력/출력 매개 변수이면 INOUT을 각각 반환합니다. |
is_result |
String |
함수인 프로시저의 결과를 나타내는 경우 YES를 반환합니다. 그렇지 않으면 NO를 반환합니다. |
as_locator |
String |
로케이터로 선언되는 경우 YES를 반환합니다. 그렇지 않으면 NO를 반환합니다. |
parameter_name |
String |
매개 변수의 이름입니다. 함수의 반환 값에 해당하면 NULL입니다. |
data_type |
String |
시스템 제공 데이터 형식입니다. |
character_maximum_length |
Int32 |
이진 또는 문자 데이터 형식의 최대 문자 길이입니다. 그렇지 않으면 NULL을 반환합니다. |
character_octet_length |
Int32 |
이진 또는 문자 데이터 형식의 최대 길이(바이트)입니다. 그렇지 않으면 NULL을 반환합니다. |
collation_catalog |
String |
매개 변수의 데이터 정렬에 대한 카탈로그 이름입니다. 해당 문자 형식 중 하나가 아니면 NULL을 반환합니다. |
collation_schema |
String |
항상 NULL을 반환합니다. |
collation_name |
String |
매개 변수의 데이터 정렬 이름입니다. 해당 문자 형식 중 하나가 아니면 NULL을 반환합니다. |
character_set_catalog |
String |
매개 변수 문자 집합의 카탈로그 이름입니다. 해당 문자 형식 중 하나가 아니면 NULL을 반환합니다. |
character_set_schema |
String |
항상 NULL을 반환합니다. |
character_set_name |
String |
매개 변수 문자 집합의 이름입니다. 해당 문자 형식 중 하나가 아니면 NULL을 반환합니다. |
numeric_precision |
Byte |
근접한 숫자 데이터의 정밀도, 정확한 숫자 데이터, 정수 데이터 또는 통화 데이터입니다. 그렇지 않으면 NULL을 반환합니다. |
numeric_precision_radix |
Int16 |
근접한 숫자 데이터의 정밀도 기수, 정확한 숫자 데이터, 정수 데이터 또는 통화 데이터입니다. 그렇지 않으면 NULL을 반환합니다. |
numeric_scale |
Int32 |
근접한 숫자 데이터의 배율, 정확한 숫자 데이터, 정수 데이터 또는 통화 데이터입니다. 그렇지 않으면 NULL을 반환합니다. |
datetime_precision |
Int16 |
매개 변수 형식이 datetime 또는 smalldatetime이면 소수로 나타낸 시간(초)의 정밀도입니다. 그렇지 않으면 NULL을 반환합니다. |
interval_type |
String |
NULL입니다. 나중에 SQL Server에서 사용하도록 예약되었습니다. |
interval_precision |
Int16 |
NULL입니다. 나중에 SQL Server에서 사용하도록 예약되었습니다. |
Tables
ColumnName |
DataType |
설명 |
---|---|---|
table_catalog |
String |
테이블의 카탈로그입니다. |
table_schema |
String |
해당 테이블을 포함하는 스키마입니다. |
table_name |
String |
테이블 이름입니다. |
table_type |
String |
테이블 형식입니다. VIEW 또는 BASE TABLE일 수 있습니다. |
Columns
ColumnName |
DataType |
설명 |
---|---|---|
table_catalog |
String |
테이블의 카탈로그입니다. |
table_schema |
String |
해당 테이블을 포함하는 스키마입니다. |
table_name |
String |
테이블 이름입니다. |
column_name |
String |
ColumnName입니다. |
ordinal_position |
Int16 |
열 ID 번호입니다. |
column_default |
String |
열 기본값입니다. |
is_nullable |
String |
열의 Null 허용 여부입니다. 이 열에서 NULL을 허용하는 경우 YES를 반환합니다. 그렇지 않으면 No가 반환됩니다. |
data_type |
String |
시스템 제공 데이터 형식입니다. |
character_maximum_length |
Int32 – Sql8, Int16 – Sql7 |
이진 데이터, 문자 데이터 또는 텍스트 및 이미지 데이터의 최대 문자 길이입니다. 그렇지 않으면 NULL이 반환됩니다. |
character_octet_length |
Int32 – SQL8, Int16 – Sql7 |
이진 데이터, 문자 데이터 또는 텍스트 및 이미지 데이터의 최대 길이(바이트)입니다. 그렇지 않으면 NULL이 반환됩니다. |
numeric_precision |
부호 없는 바이트 |
근접한 숫자 데이터의 정밀도, 정확한 숫자 데이터, 정수 데이터 또는 통화 데이터입니다. 그렇지 않으면 NULL이 반환됩니다. |
numeric_precision_radix |
Int16 |
근접한 숫자 데이터의 정밀도 기수, 정확한 숫자 데이터, 정수 데이터 또는 통화 데이터입니다. 그렇지 않으면 NULL이 반환됩니다. |
numeric_scale |
Int32 |
근접한 숫자 데이터의 배율, 정확한 숫자 데이터, 정수 데이터 또는 통화 데이터입니다. 그렇지 않으면 NULL이 반환됩니다. |
datetime_precision |
Int16 |
datetime 및 SQL-92 간격 데이터 형식의 하위 형식 코드입니다. 다른 데이터 형식의 경우 NULL이 반환됩니다. |
character_set_catalog |
String |
열이 문자 데이터 또는 텍스트 데이터 형식이면 문자 집합이 있는 데이터베이스를 나타내는 master가 반환됩니다. 그렇지 않으면 NULL이 반환됩니다. |
character_set_schema |
String |
항상 NULL을 반환합니다. |
character_set_name |
String |
이 열이 문자 데이터 또는 텍스트 데이터 형식인 경우 문자 집합에 대해 고유 이름을 반환합니다. 그렇지 않으면 NULL이 반환됩니다. |
collation_catalog |
String |
열이 문자 데이터 또는 텍스트 데이터 형식이면 데이터 정렬이 정의된 데이터베이스를 나타내는 master를 반환합니다. 그렇지 않으면 이 열은 NULL입니다. |
Columns(SQL Server 2008)
.NET Framework 버전 3.5 SP1 및 SQL Server 2008부터는 새로운 공간 유형, 파일 스트림 및 스파스 열을 지원하도록 Columns 스키마 컬렉션에 다음과 같은 열이 추가되었습니다. 이러한 열은 이전 버전의 .NET Framework 및 SQL Server에서는 지원되지 않습니다.
ColumnName |
DataType |
설명 |
---|---|---|
IS_FILESTREAM |
String |
열에 FILESTREAM 특성이 있으면 YES입니다. 열에 FILESTREAM 특성이 없으면 NO입니다. |
IS_SPARSE |
String |
열이 스파스 열이면 YES입니다. 열이 스파스 열이 아니면 NO입니다. |
IS_COLUMN_SET |
String |
열이 열 집합 열이면 YES입니다. 열이 열 집합 열이 아니면 NO입니다. |
AllColumns(SQL Server 2008)
.NET Framework 버전 3.5 SP1 및 SQL Server 2008부터는 스파스 열을 지원하도록 AllColumns 스키마 컬렉션이 추가되었습니다. AllColumns는 이전 버전의 .NET Framework 및 SQL Server에서는 지원되지 않습니다.
AllColumns는 제한 및 결과 DataTable 스키마가 Columns 스키마 컬렉션과 동일합니다. 유일한 차이점은 Columns 스키마 컬렉션에는 포함되어 있지 않은 열 집합 열이 AllColumns에는 있다는 것입니다. 다음 표에서는 이러한 열에 대해 설명합니다.
ColumnName |
DataType |
설명 |
---|---|---|
table_catalog |
String |
테이블의 카탈로그입니다. |
table_schema |
String |
해당 테이블을 포함하는 스키마입니다. |
table_name |
String |
테이블 이름입니다. |
column_name |
String |
ColumnName입니다. |
ordinal_position |
Int16 |
열 ID 번호입니다. |
column_default |
String |
열 기본값입니다. |
is_nullable |
String |
열의 Null 허용 여부입니다. 이 열에서 NULL을 허용하는 경우 YES를 반환합니다. 그렇지 않으면 NO가 반환됩니다. |
data_type |
String |
시스템 제공 데이터 형식입니다. |
character_maximum_length |
SQL Server 2000 이상에서는 Int32이고, SQL Server 7.0에서는 Int16입니다. |
이진 데이터, 문자 데이터 또는 텍스트 및 이미지 데이터의 최대 문자 길이입니다. 그렇지 않으면 NULL이 반환됩니다. |
character_octet_length |
SQL Server 2000 이상에서는 Int32이고, SQL Server 7.0에서는 Int16입니다. |
이진 데이터, 문자 데이터 또는 텍스트 및 이미지 데이터의 최대 길이(바이트)입니다. 그렇지 않으면 NULL이 반환됩니다. |
numeric_precision |
부호 없는 바이트 |
근접한 숫자 데이터의 정밀도, 정확한 숫자 데이터, 정수 데이터 또는 통화 데이터입니다. 그렇지 않으면 NULL이 반환됩니다. |
numeric_precision_radix |
Int16 |
근접한 숫자 데이터의 정밀도 기수, 정확한 숫자 데이터, 정수 데이터 또는 통화 데이터입니다. 그렇지 않으면 NULL이 반환됩니다. |
numeric_scale |
Int32 |
근접한 숫자 데이터의 배율, 정확한 숫자 데이터, 정수 데이터 또는 통화 데이터입니다. 그렇지 않으면 NULL이 반환됩니다. |
datetime_precision |
Int16 |
datetime 및 SQL-92 간격 데이터 형식의 하위 형식 코드입니다. 다른 데이터 형식의 경우 NULL이 반환됩니다. |
character_set_catalog |
String |
열이 문자 데이터 또는 텍스트 데이터 형식이면 문자 집합이 있는 데이터베이스를 나타내는 master가 반환됩니다. 그렇지 않으면 NULL이 반환됩니다. |
character_set_schema |
String |
항상 NULL을 반환합니다. |
character_set_name |
String |
이 열이 문자 데이터 또는 텍스트 데이터 형식인 경우 문자 집합에 대해 고유 이름을 반환합니다. 그렇지 않으면 NULL이 반환됩니다. |
collation_catalog |
String |
열이 문자 데이터 또는 텍스트 데이터 형식이면 데이터 정렬이 정의된 데이터베이스를 나타내는 master를 반환합니다. 그렇지 않으면 이 열은 NULL입니다. |
IS_FILESTREAM |
String |
열에 FILESTREAM 특성이 있으면 YES입니다. 열에 FILESTREAM 특성이 없으면 NO입니다. |
IS_SPARSE |
String |
열이 스파스 열이면 YES입니다. 열이 스파스 열이 아니면 NO입니다. |
IS_COLUMN_SET |
String |
열이 열 집합 열이면 YES입니다. 열이 열 집합 열이 아니면 NO입니다. |
ColumnSetColumns(SQL Server 2008)
.NET Framework 버전 3.5 SP1 및 SQL Server 2008부터는 스파스 열을 지원하도록 ColumnSetColumns 스키마 컬렉션이 추가되었습니다. ColumnSetColumns는 이전 버전의 .NET Framework 및 SQL Server에서는 지원되지 않습니다. ColumnSetColumns 스키마 컬렉션은 열 집합에 포함된 모든 열의 스키마를 반환합니다. 다음 표에서는 이러한 열에 대해 설명합니다.
ColumnName |
DataType |
설명 |
---|---|---|
table_catalog |
String |
테이블의 카탈로그입니다. |
table_schema |
String |
해당 테이블을 포함하는 스키마입니다. |
table_name |
String |
테이블 이름입니다. |
column_name |
String |
ColumnName입니다. |
ordinal_position |
Int16 |
열 ID 번호입니다. |
column_default |
String |
열 기본값입니다. |
is_nullable |
String |
열의 Null 허용 여부입니다. 이 열에서 NULL을 허용하는 경우 YES를 반환합니다. 그렇지 않으면 NO가 반환됩니다. |
data_type |
String |
시스템 제공 데이터 형식입니다. |
character_maximum_length |
SQL Server 2000 이상에서는 Int32이고, SQL Server 7.0에서는 Int16입니다. |
이진 데이터, 문자 데이터 또는 텍스트 및 이미지 데이터의 최대 문자 길이입니다. 그렇지 않으면 NULL이 반환됩니다. |
character_octet_length |
SQL Server 2000 이상에서는 Int32이고, SQL Server 7.0에서는 Int16입니다. |
이진 데이터, 문자 데이터 또는 텍스트 및 이미지 데이터의 최대 길이(바이트)입니다. 그렇지 않으면 NULL이 반환됩니다. |
numeric_precision |
부호 없는 바이트 |
근접한 숫자 데이터의 정밀도, 정확한 숫자 데이터, 정수 데이터 또는 통화 데이터입니다. 그렇지 않으면 NULL이 반환됩니다. |
numeric_precision_radix |
Int16 |
근접한 숫자 데이터의 정밀도 기수, 정확한 숫자 데이터, 정수 데이터 또는 통화 데이터입니다. 그렇지 않으면 NULL이 반환됩니다. |
numeric_scale |
Int32 |
근접한 숫자 데이터의 배율, 정확한 숫자 데이터, 정수 데이터 또는 통화 데이터입니다. 그렇지 않으면 NULL이 반환됩니다. |
datetime_precision |
Int16 |
datetime 및 SQL-92 간격 데이터 형식의 하위 형식 코드입니다. 다른 데이터 형식의 경우 NULL이 반환됩니다. |
character_set_catalog |
String |
열이 문자 데이터 또는 텍스트 데이터 형식이면 문자 집합이 있는 데이터베이스를 나타내는 master가 반환됩니다. 그렇지 않으면 NULL이 반환됩니다. |
character_set_schema |
String |
항상 NULL을 반환합니다. |
character_set_name |
String |
이 열이 문자 데이터 또는 텍스트 데이터 형식인 경우 문자 집합에 대해 고유 이름을 반환합니다. 그렇지 않으면 NULL이 반환됩니다. |
collation_catalog |
String |
열이 문자 데이터 또는 텍스트 데이터 형식이면 데이터 정렬이 정의된 데이터베이스를 나타내는 master를 반환합니다. 그렇지 않으면 이 열은 NULL입니다. |
IS_FILESTREAM |
String |
열에 FILESTREAM 특성이 있으면 YES입니다. 열에 FILESTREAM 특성이 없으면 NO입니다. |
IS_SPARSE |
String |
열이 스파스 열이면 YES입니다. 열이 스파스 열이 아니면 NO입니다. |
IS_COLUMN_SET |
String |
열이 열 집합 열이면 YES입니다. 열이 열 집합 열이 아니면 NO입니다. |
Users
ColumnName |
DataType |
설명 |
---|---|---|
uid |
Int16 |
이 데이터베이스에 고유한 사용자 ID입니다. 데이터베이스 소유자는 1입니다. |
name |
String |
이 데이터베이스에 고유한 사용자 이름 및 그룹 이름입니다. |
createdate |
DateTime |
계정이 추가된 날짜입니다. |
updatedate |
DateTime |
계정이 마지막으로 변경된 날짜입니다. |
Views
이 컬렉션은 SQL Server 2000 이상에서만 사용할 수 있습니다.
ColumnName |
DataType |
설명 |
---|---|---|
table_catalog |
String |
뷰의 카탈로그입니다. |
table_schema |
String |
해당 뷰를 포함하는 스키마입니다. |
table_name |
String |
뷰 이름입니다. |
check_option |
String |
WITH CHECK OPTION 형식입니다. 원래 뷰를 WITH CHECK OPTION을 사용하여 만든 경우 Is CASCADE입니다. 그렇지 않으면 NONE이 반환됩니다. |
is_updatable |
String |
뷰를 업데이트할 수 있는지 여부를 지정합니다. 항상 NO를 반환합니다. |
ViewColumns
ColumnName |
DataType |
설명 |
---|---|---|
view_catalog |
String |
뷰의 카탈로그입니다. |
view_schema |
String |
해당 뷰를 포함하는 스키마입니다. |
view_name |
String |
뷰 이름입니다. |
table_catalog |
String |
이 뷰와 연관된 테이블의 카탈로그입니다. |
table_schema |
String |
이 뷰와 연관된 테이블을 포함하는 스키마입니다. |
table_name |
String |
뷰와 연관된 테이블의 이름입니다. 기본 테이블입니다. |
column_name |
String |
ColumnName입니다. |
UserDefinedTypes
이 컬렉션은 SQL Server 2005 이상에서만 사용할 수 있습니다.
ColumnName |
DataType |
설명 |
---|---|---|
assembly_name |
String |
어셈블리의 파일 이름입니다. |
UDT_name |
String |
어셈블리의 클래스 이름입니다. |
version_major |
Object |
주 버전 번호입니다. |
version_minor |
Object |
보조 버전 번호입니다. |
version_build |
Object |
빌드 번호입니다. |
version_revision |
Object |
수정 번호입니다. |
Culture_info |
Object |
이 UDT와 연관된 문화권 정보입니다. |
Public_key |
Object |
이 어셈블리에서 사용되는 공개 키입니다. |
Is_fixed_length |
Boolean |
형식 길이가 항상 max_length와 같은지 여부를 지정합니다. |
max_length |
Int16 |
형식의 최대 길이(바이트)입니다. |
permission_set_desc |
String |
어셈블리의 권한 집합/보안 수준 이름입니다. |
create_date |
DateTime |
어셈블리가 만들어져 등록된 날짜입니다. |