다음을 통해 공유


SqlDataReader.GetSchemaTable 메서드

정의

DataTable의 열 메타데이터를 정의하는 SqlDataReader을 반환합니다.

public:
 virtual System::Data::DataTable ^ GetSchemaTable();
public:
 override System::Data::DataTable ^ GetSchemaTable();
public System.Data.DataTable GetSchemaTable ();
public override System.Data.DataTable GetSchemaTable ();
abstract member GetSchemaTable : unit -> System.Data.DataTable
override this.GetSchemaTable : unit -> System.Data.DataTable
override this.GetSchemaTable : unit -> System.Data.DataTable
Public Function GetSchemaTable () As DataTable
Public Overrides Function GetSchemaTable () As DataTable

반환

열 메타데이터를 정의하는 DataTable입니다.

구현

예외

설명

메서드는 GetSchemaTable 각 열에 대해 다음 메타데이터를 반환합니다.

DataReader 열 Description
AllowDBNull 소비자가 열을 null 값으로 설정할 수 있는지 또는 공급자가 소비자가 열을 null 값으로 설정할 수 있는지 여부를 결정할 수 없는 경우 를 설정합니다. 그렇지 않으면 설정하지 않습니다. 열을 null 값으로 설정할 수 없는 경우에도 열에 null 값을 포함할 수 있습니다.
BaseCatalogName 열이 포함된 데이터 저장소에 있는 카탈로그의 이름입니다. 기본 카탈로그 이름을 확인할 수 없는 경우 NULL입니다. 이 열의 기본값은 null 값입니다.
BaseColumnName 데이터 저장소의 열 이름입니다. 별칭이 사용된 경우 ColumnName 열에 반환된 열 이름과 다를 수 있습니다. 기본 열 이름을 확인할 수 없거나 행 집합 열이 파생되었지만 데이터 저장소의 열과 동일하지 않은 경우 null 값입니다. 이 열의 기본값은 null 값입니다.
BaseSchemaName 열이 포함된 데이터 저장소에 있는 스키마의 이름입니다. 기본 스키마 이름을 확인할 수 없는 경우 null 값입니다. 이 열의 기본값은 null 값입니다.
BaseServerName 에서 사용하는 Microsoft SQL Server instance 이름입니다SqlDataReader.
BaseTableName 열이 포함된 데이터 저장소에 있는 테이블 또는 뷰의 이름입니다. 기본 테이블 이름을 확인할 수 없는 경우 null 값입니다. 이 열의 기본값은 null 값입니다.
ColumnName 열의 이름 이 고유 하지 않을 수도 있습니다. 확인할 수 없는 경우 null 값이 반환됩니다. 이 이름에는 항상 현재 보기 또는 명령 텍스트에 있는 열의 최근 이름 바꾸기가 반영됩니다.
ColumnOrdinal 열의 0부터 시작하는 서수입니다. 이 열에 null 값을 포함할 수 없습니다.
ColumnSize 열 값의 최대 길이로서 고정 길이 데이터 형식을 사용하는 열의 경우 데이터 형식의 크기입니다. SQL Server 데이터베이스에 저장된 , varchar(MAX)varbinary(MAX) 열의 경우 nvarchar(MAX)최대 크기는 2GB입니다. 이러한 열이 파일로 저장되고 액세스되는 경우 파일 시스템에 의해 최대 크기 제한이 적용됩니다. 이 값은 연결 문자열 키워드(keyword) 사용할 Type System Version 때 변경됩니다. 새 형식의 경우 하위 형식으로 표시됩니다. MAX 데이터 형식은 의 경우 일반 4k nvarchar , 의 경우 8000을 반환합니다 varchar. 자세한 내용은 Transact-SQL 참조를 참조하세요.
DataTypeName 지정된 열의 데이터 형식을 나타내는 문자열을 반환합니다.
IsAliased true: 열 이름은 별칭입니다.

false: 열 이름은 별칭이 아닙니다.
IsAutoIncrement true:이 열을 고정 된 증가분의 새 행에 값을 할당합니다.

false:이 열은 고정 된 증가분의 새 행에 값을 할당 하지 않습니다. 이 열의 기본값은 false입니다.
IsColumnSet true: 열은 열 집합의 멤버인 스파스 열입니다.
IsExpression true: 열이 식입니다.

false: 열이 식이 아닙니다.
IsHidden true: 열이 숨겨져 있습니다.

false: 열이 숨겨져 있지 않습니다.
IsIdentity true: 열이 ID 열입니다.

false: 열이 ID 열이 아닙니다.
IsKey true: 열은 행 집합에서 행을 고유하게 식별하는 열 집합 중 하나입니다. IsKeytrue로 설정된 열 집합은 행 집합의 행을 고유하게 식별해야 합니다. 이 열 집합이 열의 최소 집합일 필요는 없습니다. 이 열 집합은 기본 테이블 기본 키, 고유 제약 조건 또는 고유 인덱스에서 생성될 수 있습니다.

false:이 열은 행을 식별할 필요가 없습니다.
IsLong true: 열에는 매우 긴 데이터가 포함된 BLOB(Binary Long Object)이 포함되어 있습니다. 매우 긴 데이터에 대한 정의는 공급자에 따라 다릅니다.

false: 열에 매우 긴 데이터가 포함된 BLOB(Binary Long Object)이 포함되어 있지 않습니다.
IsReadOnly true: 열을 수정할 수 없습니다.

false: 열을 수정할 수 있습니다.
IsRowVersion true: 열에는 쓸 수 없는 영구 행 식별자가 포함되어 있으며 행의 ID를 제외하고는 의미 있는 값이 없습니다.

false: 열에 쓸 수 없는 영구 행 식별자가 포함되어 있지 않으며 행의 ID를 제외하고는 의미 있는 값이 없습니다.
IsUnique true: 열은 형식 timestamp입니다.

false: 열이 형식 timestamp이 아닙니다.
NonVersionedProviderType 연결 문자열 지정된 현재 Type System Version 열의 형식입니다. 반환된 값은 열거형에서 SqlDbType 가져옵니다.
NumericPrecision 가 숫자 데이터 형식인 경우 ProviderType 열의 최대 정밀도입니다. 전체 자릿수는 열의 정의에 따라 달라집니다. 가 숫자 데이터 형식이 아닌 경우 ProviderType 255입니다.
NumericScale 가 DBTYPE_DECIMAL 또는 DBTYPE_NUMERIC 경우 ProviderType 소수점 오른쪽의 숫자 수입니다. 그렇지 않으면 255입니다.
ProviderSpecificDataType 연결 문자열 키워드(keyword) 기반으로 Type System Version 열의 공급자별 데이터 형식을 반환합니다.
ProviderType 열 데이터 형식 표시기입니다. 열의 데이터 형식이 행마다 다른 경우 개체여야 합니다. 이 열에 null 값을 포함할 수 없습니다.
UdtAssemblyQualifiedName 열이 UDT(사용자 정의 형식)인 경우 에 따라 AssemblyQualifiedNameUDT 어셈블리의 정규화된 이름입니다. 열이 UDT가 아니면 null입니다.
XmlSchemaCollectionDatabase 행에 XML 열에 대한 정보가 포함된 경우 이 XML instance 스키마 컬렉션이 있는 데이터베이스의 이름입니다. 컬렉션이 null 현재 데이터베이스 내에 정의된 경우 이 값은 (Nothing Visual Basic의 경우)입니다. 스키마 컬렉션이 없는 경우에도 null이며, 이 경우 XmlSchemaCollectionNameXmlSchemaCollectionOwningSchema 열도 null입니다.
XmlSchemaCollectionName 행에 XML 열에 대한 정보가 포함된 경우 이 XML에 대한 스키마 컬렉션의 이름이 instance. 연결된 스키마 컬렉션이 null 없는 경우 이 값은 (Nothing Visual Basic의 경우)입니다. 값이 null XmlSchemaCollectionDatabase 이면 및 XmlSchemaCollectionOwningSchema 열도 null입니다.
XmlSchemaCollectionOwningSchema 행에 XML 열에 대한 정보가 포함된 경우 이 XML instance 대한 스키마 컬렉션이 있는 소유 관계형 스키마입니다. 컬렉션이 null 현재 데이터베이스 내에 정의된 경우 이 값은 (Nothing Visual Basic의 경우)입니다. 스키마 컬렉션이 없는 경우에도 null이며, 이 경우 XmlSchemaCollectionDatabaseXmlSchemaCollectionName 열도 null입니다.

참고

메타데이터 열이 올바른 정보를 반환하도록 하려면 매개 변수를 로 설정KeyInfo하여 behavior 를 호출 ExecuteReader 해야 합니다. 그렇지 않으면 스키마 테이블의 일부 열이 기본값, null 또는 잘못된 데이터를 반환할 수 있습니다.

적용 대상

추가 정보