SqlDataReader.GetSchemaTable 메서드

정의

DataTable의 열 메타데이터를 정의하는 SqlDataReader을 반환합니다.Returns a DataTable that describes the column metadata of the SqlDataReader.

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

반환

열 메타데이터를 정의하는 DataTable입니다.A DataTable that describes the column metadata.

구현

예외

SqlDataReader가 닫혔습니다.The SqlDataReader is closed.

설명

GetSchemaTable 메서드는 다음 순서로 각 열에 대 한 메타 데이터를 반환 합니다.For the GetSchemaTable method returns metadata about each column in the following order:

DataReader 열DataReader column 설명Description
AllowDBNullAllowDBNull 소비자가 열을 null 값으로 설정할 수 있으면를 설정 하 고, 소비자가 열을 null 값으로 설정할 수 있는지 여부를 공급자가 결정할 수 없는 경우에 설정 합니다.Set if the consumer can set the column to a null value or if the provider cannot determine whether the consumer can set the column to a null value. 그렇지 않으면 설정하지 않습니다.Otherwise, not set. 열을 null 값으로 설정할 수 없는 경우에도 열에 null 값을 포함할 수 있습니다.A column may contain null values, even if it cannot be set to a null value.
BaseCatalogNameBaseCatalogName 열이 포함 된 데이터 저장소에 있는 카탈로그의 이름입니다.The name of the catalog in the data store that contains the column. 기본 카탈로그 이름을 확인할 수 없는 경우 NULL입니다.NULL if the base catalog name cannot be determined. 이 열의 기본값은 null 값입니다.The default of this column is a null value.
BaseColumnNameBaseColumnName 데이터 저장소의 열 이름입니다.The name of the column in the data store. 별칭을 사용 하는 경우 ColumnName 열에 반환 된 열 이름과 다를 수 있습니다.This might be different than the column name returned in the ColumnName column if an alias was used. 기본 열 이름을 확인할 수 없는 경우 또는 행 집합 열이 데이터 저장소의 열로 파생 되었지만 동일 하지 않은 경우 null 값입니다.A null value if the base column name cannot be determined or if the rowset column is derived, but not identical to, a column in the data store. 이 열의 기본값은 null 값입니다.The default of this column is a null value.
BaseSchemaNameBaseSchemaName 열이 포함된 데이터 저장소에 있는 스키마의 이름입니다.The name of the schema in the data store that contains the column. 기본 스키마 이름을 확인할 수 없는 경우 null 값입니다.A null value if the base schema name cannot be determined. 이 열의 기본값은 null 값입니다.The default of this column is a null value.
BaseServerNameBaseServerName SqlDataReader에서 사용 하는 Microsoft SQL Server의 인스턴스 이름입니다.The name of the instance of Microsoft SQL Server used by the SqlDataReader.
BaseTableNameBaseTableName 열이 포함된 데이터 저장소에 있는 테이블 또는 뷰의 이름입니다.The name of the table or view in the data store that contains the column. 기본 테이블 이름을 확인할 수 없는 경우 null 값입니다.A null value if the base table name cannot be determined. 이 열의 기본값은 null 값입니다.The default of this column is a null value.
열 이름ColumnName 열의 이름 이 고유 하지 않을 수도 있습니다.The name of the column; this might not be unique. 이 결정할 수 없는 경우 null 값이 반환 됩니다.If this cannot be determined, a null value is returned. 이 이름에는 항상 현재 보기 또는 명령 텍스트에 있는 열의 최근 이름 바꾸기가 반영됩니다.This name always reflects the most recent renaming of the column in the current view or command text.
ColumnOrdinalColumnOrdinal 열의 0부터 시작하는 서수입니다.The zero-based ordinal of the column. 이 열에 null 값을 포함할 수 없습니다.This column cannot contain a null value.
ColumnSizeColumnSize 열의 값에 대 한 최대 허용 길이입니다.The maximum possible length of a value in the column. 고정 길이 데이터 형식을 사용 하는 열의 경우 데이터 형식의 크기입니다.For columns that use a fixed-length data type, this is the size of the data type. SQL Server 데이터베이스에 저장 된 nvarchar(MAX), varchar(MAX)varbinary(MAX) 열의 최대 크기는 2GB입니다.For nvarchar(MAX), varchar(MAX), and varbinary(MAX) columns stored in a SQL Server database, the maximum size is 2GB. 이러한 열이 저장 되 고 파일로 액세스 되는 경우 최대 크기 제한은 파일 시스템에 의해 적용 됩니다.If these columns are stored and accessed as files, the limit on maximum size is imposed by the file system. 연결 문자열에서 Type System Version 키워드를 사용 하는 경우이 값이 변경 됩니다.This value changes when using the Type System Version keyword in the connection string. 새 형식의 경우 하위 형식으로 표시 됩니다.For new types they are represented as downlevel types. MAX 데이터 형식은 nvarchar의 경우 일반 4k를, varchar의 경우 8000을 반환 합니다.The MAX data types return the normal 4k for nvarchar and 8000 for varchar. 자세한 내용은 transact-sql 참조를 참조 하세요.For more information, see the Transact-SQL reference.
EDataTypeName 지정 된 열의 데이터 형식을 나타내는 문자열을 반환 합니다.Returns a string representing the data type of the specified column.
IsAliasedIsAliased true: 열 이름이 별칭입니다.true: The column name is an alias.

false: 열 이름이 별칭이 아닙니다.false: The column name is not an alias.
IsAutoIncrementIsAutoIncrement true:이 열을 고정 된 증가분의 새 행에 값을 할당합니다.true: The column assigns values to new rows in fixed increments.

false:이 열은 고정 된 증가분의 새 행에 값을 할당 하지 않습니다.false: The column does not assign values to new rows in fixed increments. 이 칼럼의 기본값은 false합니다.The default of this column is false.
IsColumnSetIsColumnSet true: 열이 열 집합의 멤버인 스파스 열입니다.true: The column is a sparse column that is a member of a column set.
IsExpressionIsExpression true: 열이 식입니다.true: The column is an expression.

false: 열이 식이 아닙니다.false: The column is not an expression.
isHiddenIsHidden true: 열이 숨겨져 있습니다.true: The column is hidden.

false: 열이 숨겨지지 않습니다.false: The column is not hidden.
IsIdentityIsIdentity true: 열이 ID 열입니다.true: The column is an identity column.

false: 열이 id 열이 아닙니다.false: The column is not an identity column.
IsKeyIsKey true: 열은 행 집합에서 행을 고유 하 게 식별 하는 행 집합의 열 중 하나입니다.true: The column is one of a set of columns in the rowset that, taken together, uniquely identify the row. IsKey true로 설정 된 열 집합은 행 집합의 행을 고유 하 게 식별 해야 합니다.The set of columns with IsKey set to true must uniquely identify a row in the rowset. 이 열 집합이 열의 최소 집합일은 사항은 없습니다.There is no requirement that this set of columns is a minimal set of columns. 이 열 집합은 기본 테이블 기본 키, 고유 제약 조건 또는 고유 인덱스에서 생성될 수 있습니다.This set of columns may be generated from a base table primary key, a unique constraint or a unique index.

false:이 열은 행을 식별할 필요가 없습니다.false: The column is not required to uniquely identify the row.
IsLongIsLong true: 열은 매우 긴 데이터를 포함 하는 BLOB (Binary Long Object)를 포함 합니다.true: The column contains a Binary Long Object (BLOB) that contains very long data. 매우 긴 데이터에 대한 정의는 공급자에 따라 다릅니다.The definition of very long data is provider-specific.

false: 열에 매우 긴 데이터를 포함 하는 BLOB (Binary Long Object)가 포함 되어 있지 않습니다.false: The column does not contain a Binary Long Object (BLOB) that contains very long data.
IsReadOnlyIsReadOnly true: 열을 수정할 수 없습니다.true: The column cannot be modified.

false: 열을 수정할 수 있습니다.false: The column can be modified.
IsRowVersionIsRowVersion true: 열에 쓸 수 없는 영구 행 식별자가 포함 되어 있으며 행의 id를 제외 하 고 의미 있는 값이 없습니다.true: The column contains a persistent row identifier that cannot be written to, and has no meaningful value except to identity the row.

false: 열에 쓸 수 없는 영구 행 식별자가 포함 되어 있지 않으며 행의 id를 제외 하 고 의미 있는 값이 없습니다.false: The column does not contain a persistent row identifier that cannot be written to, and has no meaningful value except to identity the row.
IsUniqueIsUnique true: 열이 timestamp유형입니다.true: Column is of type timestamp.

false: 열이 timestamp유형이 아닙니다.false: Column is not of type timestamp.
NonVersionedProviderTypeNonVersionedProviderType 연결 문자열에 지정 된 현재 Type System Version에 관계 없이 열의 유형입니다.The type of the column irrespective of the current Type System Version specified in the connection string. 반환 된 값은 SqlDbType 열거형에서 가져온 값입니다.The returned value is from the SqlDbType enumeration.
NumericPrecisionNumericPrecision ProviderType 숫자 데이터 형식이 면 열의 최대 전체 자릿수입니다.If ProviderType is a numeric data type, this is the maximum precision of the column. 전체 자릿수는 열 정의에 따라 달라 집니다.The precision depends on the definition of the column. ProviderType 숫자 데이터 형식이 아닌 경우 255입니다.If ProviderType is not a numeric data type, this is 255.
NumericScaleNumericScale ProviderType DBTYPE_DECIMAL 또는 DBTYPE_NUMERIC 인 경우 소수점 오른쪽의 자릿수입니다.If ProviderType is DBTYPE_DECIMAL or DBTYPE_NUMERIC, the number of digits to the right of the decimal point. 그렇지 않으면 255입니다.Otherwise, this is 255.
ProviderSpecificDataTypeProviderSpecificDataType 연결 문자열의 Type System Version 키워드를 기준으로 열의 공급자별 데이터 형식을 반환 합니다.Returns the provider-specific data type of the column based on the Type System Version keyword in the connection string.
ProviderTypeProviderType 표시기 열 데이터 형식입니다.The indicator of the column's data type. 열의 데이터 형식이 행 마다 다른 경우이는 개체 여야 합니다.If the data type of the column varies from row to row, this must be Object. 이 열에 null 값을 포함할 수 없습니다.This column cannot contain a null value.
UdtAssemblyQualifiedNameUdtAssemblyQualifiedName 열이 UDT (사용자 정의 형식) 인 경우 AssemblyQualifiedName에 따라 UDT 어셈블리의 정규화 된 이름입니다.If the column is a user-defined type (UDT), this is the qualified name of the UDT's assembly as per AssemblyQualifiedName. 열이 UDT가 아니면 null입니다.If the column is not a UDT, this is null.
XmlSchemaCollectionDatabaseXmlSchemaCollectionDatabase 행에 XML 열에 대 한 정보가 포함 된 경우이 XML 인스턴스의 스키마 컬렉션이 있는 데이터베이스의 이름입니다.The name of the database where the schema collection for this XML instance is located, if the row contains information about an XML column. 컬렉션이 현재 데이터베이스 내에 정의 된 경우이 값은 null (Nothing Visual Basic)입니다.This value is null (Nothing in Visual Basic) if the collection is defined within the current database. 스키마 컬렉션이 없는 경우에도 null입니다 .이 경우 XmlSchemaCollectionNameXmlSchemaCollectionOwningSchema 열도 null입니다.It is also null if there is no schema collection, in which case the XmlSchemaCollectionName and XmlSchemaCollectionOwningSchema columns are also null.
XmlSchemaCollectionNameXmlSchemaCollectionName 행에 XML 열에 대 한 정보가 포함 된 경우이 XML 인스턴스에 대 한 스키마 컬렉션의 이름입니다.The name of the schema collection for this XML instance, if the row contains information about an XML column. 이 값은 연결 된 스키마 컬렉션이 없는 경우 null``Nothing (Visual Basic)입니다.This value is null (Nothing in Visual Basic) if there is no associated schema collection. 값이 null 이면 XmlSchemaCollectionDatabaseXmlSchemaCollectionOwningSchema 열도 null입니다.If the value is null, the XmlSchemaCollectionDatabase and XmlSchemaCollectionOwningSchema columns are also null.
XmlSchemaCollectionOwningSchemaXmlSchemaCollectionOwningSchema 행에 XML 열에 대 한 정보가 포함 된 경우이 XML 인스턴스의 스키마 컬렉션이 있는 소유 하는 관계형 스키마입니다.The owning relational schema where the schema collection for this XML instance is located, if the row contains information about an XML column. 컬렉션이 현재 데이터베이스 내에 정의 된 경우이 값은 null (Nothing Visual Basic)입니다.This value is null (Nothing in Visual Basic) if the collection is defined within the current database. 스키마 컬렉션이 없는 경우에도 null입니다 .이 경우 XmlSchemaCollectionDatabaseXmlSchemaCollectionName 열도 null입니다.It is also null if there is no schema collection, in which case the XmlSchemaCollectionDatabase and XmlSchemaCollectionName columns are also null.

참고

메타 데이터 열이 올바른 정보를 반환 하는지 확인 하려면 behavior 매개 변수를 KeyInfo로 설정 하 여 ExecuteReader를 호출 해야 합니다.To make sure that metadata columns return the correct information, you must call ExecuteReader with the behavior parameter set to KeyInfo. 그렇지 않으면 스키마 테이블의 일부 열이 기본, null 또는 잘못 된 데이터를 반환할 수 있습니다.Otherwise, some of the columns in the schema table may return default, null, or incorrect data.

적용 대상

추가 정보