공통 스키마 컬렉션
적용 대상: .NET Framework .NET .NET Standard
공통 스키마 컬렉션은 각 .NET 관리되는 공급자가 구현하는 스키마 컬렉션입니다. .NET 관리되는 공급자를 쿼리하여 인수를 사용하지 않거나 “MetaDataCollections”라는 스키마 컬렉션 이름으로 GetSchema
메서드를 호출함으로써 지원되는 스키마 컬렉션 목록을 확인할 수 있습니다. 이 메서드는 지원되는 스키마 컬렉션의 목록, 각각의 지원되는 제한 수 및 사용되는 식별자 부분의 수와 함께 DataTable을 반환합니다. 이 컬렉션은 필요한 모든 열을 설명합니다. 공급자는 원하는 경우 자유롭게 더 많은 열을 추가할 수 있습니다. 예를 들어, Microsoft SqlClient Data Provider SQL Server는 제한 컬렉션에 ParameterName
을 추가합니다.
공급자는 필수 열의 값을 판단할 수 없는 경우 null을 반환합니다.
GetSchema
메서드를 사용하는 방법에 관한 자세한 내용은 GetSchema 및 스키마 컬렉션을 참조하세요.
MetaDataCollections
이 컬렉션에서는 데이터베이스에 연결하기 위해 현재 사용되는 공급자에서 지원되는 모든 스키마 컬렉션에 대한 정보를 노출합니다.
ColumnName | DataType | 설명 |
---|---|---|
CollectionName | string |
컬렉션을 반환하기 위해 GetSchema 메서드로 전달할 컬렉션의 이름입니다. |
NumberOfRestrictions | int |
컬렉션에 지정할 수 있는 제한의 수입니다. |
NumberOfIdentifierParts | int |
복합 식별자/데이터베이스 개체 이름의 부분 개수. 예를 들어 SQL Server에서 값은 테이블에 대해 3, 열에 대해 4가 됩니다. |
DataSourceInformation
이 스키마 컬렉션은 Microsoft SqlClient Data Provider for SQL Server가 현재 연결되어 있는 데이터 원본에 관한 정보를 공개합니다.
ColumnName | DataType | 설명 |
---|---|---|
CompositeIdentifierSeparatorPattern | string |
복합 식별자의 복합 구분 기호와 일치하는 정규식입니다. 예: \. (SQL Server)복합 식별자는 일반적으로 데이터베이스 개체 이름에 사용됩니다. 예: pubs.dbo.authors 또는 pubs@dbo.authors SQL Server의 경우 정규식 “ \. ”을 사용합니다. |
DataSourceProductName | string |
"SQLServer"와 같이 공급자가 액세스하는 제품의 이름입니다. |
DataSourceProductVersion | string |
공급자에서 액세스하는 제품의 버전을 Microsoft 형식이 아닌 데이터 소스 기본 형식으로 나타냅니다. 경우에 따라 DataSourceProductVersion 및 DataSourceProductVersionNormalized 는 동일한 값이 됩니다. |
DataSourceProductVersionNormalized | string |
String.Compare() 와 비교할 수 있는 데이터 소스의 표준화된 버전. 이 형식은 버전 10이 버전 1과 버전 2 사이에서 정렬되지 않도록 모든 버전의 공급자에 대해 일치합니다.예를 들어, SQL Server에서는 일반적인 Microsoft nn.nn.nnnn 형식을 사용합니다.경우에 따라 DataSourceProductVersion 및 DataSourceProductVersionNormalized 는 동일한 값이 됩니다. |
GroupByBehavior | GroupByBehavior | GROUP BY 절의 열과 선택 목록의 집계되지 않은 열 간의 관계를 지정합니다. |
IdentifierPattern | string |
식별자와 일치하고 일치하는 식별자 값이 있는 정규식입니다. 예들 들어 [A-Za-z0-9_#$] 입니다. |
IdentifierCase | IdentifierCase | 따옴표로 묶지 않은 식별자의 대/소문자 구분 여부를 나타냅니다. |
OrderByColumnsInSelect | bool |
ORDER BY 절의 열이 선택 목록에 들어 있어야 하는지 여부를 지정합니다. true 값은 선택 목록에 있어야 함을 나타냅니다. false 값은 선택 목록에 있을 필요가 없음을 나타냅니다. |
ParameterMarkerFormat | string |
매개 변수 형식을 지정하는 방법을 나타내는 형식 문자열입니다. 명명된 매개 변수를 데이터 소스에서 지원하는 경우 매개 변수 이름의 형식이 지정되어야 하는 위치가 이 문자열의 첫 번째 자리 표시자여야 합니다. 예를 들어, 데이터 원본에 : 접두사가 붙은 명명된 매개 변수가 필요한 경우에는 :{0} 입니다. 이 문자열을 p1 이라는 매개 변수 이름으로 형식을 지정하는 경우 그 결과로 나오는 문자열은 :p1 입니다.데이터 원본에 @ 이라는 접두사가 붙은 매개 변수가 필요하지만 이름에 이 매개 변수가 포함되어 있는 경우에는 {0} 이 되므로 @p1 이라는 매개 변수의 형식은 @p1 이 됩니다.명명된 매개 변수가 필요하지 않고 ? 문자를 사용해야 하는 데이터 원본의 경우 형식 문자열을 ? 로 지정할 수 있습니다. 이 경우 매개 변수 이름은 무시됩니다. |
ParameterMarkerPattern | string |
매개 변수 표식과 일치하는 정규식입니다. 매개 변수 이름이 있는 경우 일치하는 매개 변수 이름 값을 가집니다. 예를 들어, 매개 변수 이름에 포함될 @ 선행 문자와 함께 명명된 매개 변수를 지원하는 경우 이 패턴은 (\@[A-Za-z0-9_$#]*) 입니다.그러나 명명된 매개 변수가 선행 문자 : 과 함께 지원되며 이 문자가 매개 변수 이름에 포함되어 있지 않은 경우 이 패턴은 :([A-Za-z0-9_$#]\*) 입니다.데이터 원본에서 명명된 매개 변수를 지원하는 경우 이 패턴은 ? 입니다. |
ParameterNameMaxLength | int |
매개 변수 이름의 최대 길이(문자 수)입니다. Visual Studio에서는 매개 변수 이름이 지원되는 경우 최대 길이에 대한 최소 값을 30자로 간주합니다. 데이터 원본이 명명된 매개 변수를 지원하지 않는 경우 이 속성은 0을 반환합니다. |
ParameterNamePattern | string |
유효 매개 변수 이름과 일치하는 정규식입니다. 서로 다른 데이터 원본에는 매개 변수 이름에 사용할 수 있는 문자에 대한 서로 다른 규칙이 있습니다. Visual Studio에서는 매개 변수 이름이 지원되는 경우 \p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Nd} 문자는 매개 변수 이름에 유효한 최소 지원 문자 집합인 것으로 예상합니다. |
QuotedIdentifierPattern | string |
따옴표로 묶은 식별자와 일치하고 따옴표를 제외한 일치하는 식별자 값이 있는 정규식입니다. 예를 들어, 데이터 원본에서 큰따옴표를 사용하여 따옴표로 묶은 식별자를 식별하는 경우 이 패턴은 (([^\\"]\|\\"\\")*) 입니다. |
QuotedIdentifierCase | IdentifierCase | 따옴표로 묶은 식별자의 대/소문자 구분 여부를 나타냅니다. |
StatementSeparatorPattern | string |
문 구분 기호와 일치하는 정규식입니다. |
StringLiteralPattern | string |
문자 리터럴과 일치하고 일치하는 리터럴 값이 있는 정규식입니다. 예를 들어, 데이터 원본에서 작은따옴표를 사용하여 문자열을 식별하는 경우 이 패턴은 ('([^']\|'')*') 입니다. |
SupportedJoinOperators | SupportedJoinOperators | 데이터 소스에서 지원하는 SQL 조인 문의 형식을 지정합니다. |
DataTypes
이 스키마 컬렉션에서는 공급자가 현재 연결되어 있는 데이터베이스에서 지원하는 데이터 형식에 대한 정보를 노출합니다.
ColumnName | DataType | 설명 |
---|---|---|
TypeName | string |
공급자별 데이터 형식 이름입니다. |
ProviderDbType | int |
매개 변수 형식을 지정할 때 사용해야 하는 공급자별 형식 값입니다. 예들 들어 SqlDbType.Money 입니다. |
ColumnSize | long |
숫자가 아닌 열 또는 매개 변수의 길이입니다. 이 값은 최대 길이 또는 공급자가 이 형식에 대해 정의한 길이를 나타냅니다. 문자 데이터의 경우 이 값은 최대 길이 또는 데이터 원본에 의해 정의된 단위의 길이입니다. 날짜-시간 데이터 형식의 경우 이 값은 문자열 표현의 길이입니다(소수 자릿수 초 구성 요소가 최대 허용 전체 자릿수라고 가정). 데이터 형식이 숫자인 경우 이 값은 데이터 형식의 최대 전체 자릿수에 대한 상한입니다. |
CreateFormat | string |
이 열을 CREATE TABLE과 같은 데이터 정의 문에 추가하는 방법을 나타내는 형식 문자열입니다. CreateParameter 배열의 각 요소는 형식 문자열에 “매개 변수 표식”으로 나타나야 합니다.예를 들어, SQL 데이터 형식 DECIMAL에는 정밀도와 배율이 필요합니다. 이 경우 형식 문자열은 DECIMAL({0},{1}) 입니다. |
CreateParameters | string |
이 데이터 형식의 열을 만들 때 지정해야 하는 생성 매개 변수입니다. 각 생성 매개 변수는 제공되는 순서대로 쉼표로 구분하여 문자열에 나열됩니다. 예를 들어, SQL 데이터 형식 DECIMAL에는 정밀도와 배율이 필요합니다. 이 경우, 생성 매개 변수에는 "정밀도, 배율" 문자열이 포함되어야 합니다. 정밀도 10과 배율 2를 사용하여 DECIMAL 열을 만들기 위한 텍스트 명령에서 CreateFormat 열의 값은 DECIMAL({0},{1}) 이며 전체 형식 사양은 DECIMAL(10,2) 입니다. |
DataType | string |
데이터 형식의 .NET 형식 이름입니다. |
IsAutoincrementable | bool |
true - 이 데이터 형식의 값이 자동 증분됩니다.false - 이 데이터 형식의 값이 자동 증분되지 않습니다.이 속성은 이 형식의 열이 자동 증분되는 것이 아니라 이 데이터 형식의 열이 자동 증분되는지 여부를 나타냅니다. |
IsBestMatch | bool |
true - 데이터 형식이 데이터 저장소의 모든 데이터 형식과 DataType 열의 값으로 나타낸 .NET 데이터 형식 사이에서 정확히 일치합니다.false - 데이터 형식이 정확히 일치하지 않습니다.DataType 열 값이 같은 행 집합의 경우 IsBestMatch 열이 행 하나에만 true 로 설정되어 있습니다. |
IsCaseSensitive | bool |
true - 데이터 형식이 문자 형식이며 대/소문자를 구분합니다.false - 데이터 형식이 문자 형식이 아니거나 대/소문자를 구분하지 않습니다. |
IsFixedLength | bool |
true - DDL(데이터 정의 언어)에서 만든 이 데이터 형식의 열 길이가 고정 길이입니다.false - DDL에서 만든 이 데이터 형식의 열 길이가 가변 길이입니다.DBNull.Value - 공급자가 이 필드를 고정 길이 열에 매핑할지 가변 길이 열에 매핑할지 여부를 알 수 없습니다. |
IsFixedPrecisionScale | bool |
true - 데이터 형식의 정밀도와 배율이 고정되어 있습니다.false - 데이터 형식의 정밀도와 배율이 고정되어 있지 않습니다. |
IsLong | bool |
true - 데이터 형식에 매우 긴 데이터가 포함되며, 매우 긴 데이터의 정의는 공급자별로 다릅니다.false - 데이터 형식에 매우 긴 데이터가 포함되지 않습니다. |
IsNullable | bool |
true - 데이터 형식이 null 허용입니다.false - 데이터 형식이 null 허용이 아닙니다.DBNull.Value - 데이터 형식이 null 허용인지 여부를 알 수 없습니다. |
IsSearchable | bool |
true - 데이터 형식을 LIKE 조건부를 제외한 모든 연산자와 함께 WHERE 절에서 사용할 수 있습니다.false - 데이터 형식을 LIKE 조건부를 제외한 모든 연산자와 함께 WHERE 절에서 사용할 수 없습니다. |
IsSearchableWithLike | bool |
true - 데이터 형식을 LIKE 조건부에서 사용할 수 있습니다.false - 데이터 형식을 LIKE 조건부에서 사용할 수 없습니다. |
IsUnsigned | bool |
true - 부호 없는 데이터 형식입니다.false - 부호 있는 데이터 형식입니다.DBNull.Value - 데이터 형식에 적용할 수 없습니다. |
MaximumScale | short |
형식 표시기가 숫자 형식인 경우 이 값은 소수점 오른쪽에 허용되는 최대 자릿수입니다. 그렇지 않은 경우 이 값은 DBNull.Value 입니다. |
MinimumScale | short |
형식 표시기가 숫자 형식인 경우 이 값은 소수점 오른쪽에 허용되는 최소 자릿수입니다. 그렇지 않은 경우 이 값은 DBNull.Value 입니다. |
IsConcurrencyType | bool |
true - 행이 변경될 때마다 데이터베이스에서 데이터 형식을 업데이트하며 열의 값이 모든 이전 값과 다릅니다.false - 행이 변경될 때마다 데이터베이스에서 데이터 형식을 업데이트하지 않습니다.DBNull.Value – 데이터베이스에서 이 데이터 형식을 지원하지 않습니다. |
IsLiteralSupported | bool |
true - 데이터 형식을 리터럴로 표현할 수 있습니다.false - 데이터 형식을 리터럴로 표현할 수 없습니다. |
LiteralPrefix | string |
지정한 리터럴에 적용된 접두사입니다. |
LiteralSuffix | string |
지정한 리터럴에 적용된 접미사입니다. |
제한 사항
이 스키마 컬렉션에서는 데이터베이스에 연결하기 위해 현재 사용되는 공급자에서 지원하는 제한에 대한 정보를 노출시킵니다.
ColumnName | DataType | 설명 |
---|---|---|
CollectionName | string |
이러한 제한이 적용되는 컬렉션의 이름입니다. |
RestrictionName | string |
컬렉션에서 제한의 이름입니다. |
RestrictionDefault | string |
무시됩니다. |
RestrictionNumber | int |
특정 제한이 속한 Restrictions 컬렉션의 실제 위치입니다. |
ReservedWords
이 스키마 컬렉션에서는 공급자가 현재 연결되어 있는 데이터베이스에서 예약된 단어에 대한 정보를 노출합니다.
ColumnName | DataType | 설명 |
---|---|---|
ReservedWord | string |
공급자 관련 예약어입니다. |