Freigeben über


SqlDataReader.GetSchemaTable Methode

Definition

Gibt eine DataTable zurück, die die Spaltenmetadaten des SqlDataReader beschreibt.

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

Gibt zurück

Eine DataTable, die die Spaltenmetadaten beschreibt.

Implementiert

Ausnahmen

Hinweise

Die GetSchemaTable -Methode gibt die folgenden Metadaten zu jeder Spalte zurück:

DataReader-Spalte BESCHREIBUNG
AllowDBNull Legen Sie fest, ob der Consumer die Spalte auf einen NULL-Wert festlegen kann oder ob der Anbieter nicht ermitteln kann, ob der Consumer die Spalte auf einen NULL-Wert festlegen kann. Andernfalls nicht festgelegt. Eine Spalte kann NULL-Werte enthalten, auch wenn sie nicht auf einen NULL-Wert festgelegt werden kann.
BaseCatalogName Der Name des Katalogs im Datenspeicher, der die Spalte enthält. NULL, wenn der Name des Basiskatalogs nicht bestimmt werden kann. Der Standardwert dieser Spalte ist ein NULL-Wert.
BaseColumnName Der Name der Spalte im Datenspeicher. Dies kann sich von dem Spaltennamen unterscheiden, der in der Spalte ColumnName zurückgegeben wird, wenn ein Alias verwendet wurde. Ein NULL-Wert, wenn der Name der Basisspalte nicht bestimmt werden kann oder wenn die Rowsetspalte abgeleitet, aber nicht identisch mit einer Spalte im Datenspeicher ist. Der Standardwert dieser Spalte ist ein NULL-Wert.
BaseSchemaName Der Name des Schemas im Datenspeicher, das die Spalte enthält. Ein NULL-Wert, wenn der Name des Basisschemas nicht bestimmt werden kann. Der Standardwert dieser Spalte ist ein NULL-Wert.
BaseServerName Der Name der Instanz von Microsoft SQL Server, die SqlDataReadervon verwendet wird.
BaseTableName Der Name der Tabelle oder Ansicht im Datenspeicher, die die Spalte enthält. Ein NULL-Wert, wenn der Name der Basistabelle nicht bestimmt werden kann. Der Standardwert dieser Spalte ist ein NULL-Wert.
ColumnName Der Name der Spalte; Dies ist möglicherweise nicht eindeutig. Wenn sie nicht bestimmt werden kann, wird ein NULL-Wert zurückgegeben. Dieser Name gibt den aktuellen Stand der Umbenennung der Spalte im aktuellen Ansichts- oder Befehlstext wieder.
ColumnOrdinal Die nullbasierte Ordnungszahl der Spalte. Diese Spalte kann keinen NULL-Wert enthalten.
ColumnSize Die maximal mögliche Länge eines Werts in der Spalte. Für Spalten, die einen Datentyp mit fester Länge verwenden, ist dies die Größe des Datentyps. Für nvarchar(MAX)spalten , varchar(MAX)und, die varbinary(MAX) in einer SQL Server-Datenbank gespeichert sind, beträgt die maximale Größe 2 GB. Wenn auf diese Spalten als Dateien gespeichert und zugegriffen wird, wird die maximale Größe vom Dateisystem festgelegt. Dieser Wert ändert sich, wenn das Type System Version Schlüsselwort in der Verbindungszeichenfolge verwendet wird. Bei neuen Typen werden sie als Downlevel-Typen dargestellt. Die MAX-Datentypen geben die normalen 4.000 für nvarchar und 8000 für varcharzurück. Weitere Informationen finden Sie in der Transact-SQL-Referenz.
DataTypeName Gibt eine Zeichenfolge zurück, die den Datentyp der angegebenen Spalte darstellt.
IsAliased true: Der Spaltenname ist ein Alias.

false: Der Spaltenname ist kein Alias.
IsAutoIncrement true: Die Spalte weist neuen Zeilen in festen Schritten Werte zu.

false: Die Spalte weist neuen Zeilen in festen Schritten keine Werte zu. Der Standardwert für diese Spalte ist false.
IsColumnSet true: Die Spalte ist eine Sparsespalte, die ein Element eines Spaltensatzes ist.
IsExpression true: Die Spalte ist ein Ausdruck.

false: Die Spalte ist kein Ausdruck.
IsHidden true: Die Spalte ist ausgeblendet.

false: Die Spalte ist nicht ausgeblendet.
IsIdentity true: Die Spalte ist eine Identitätsspalte.

false: Die Spalte ist keine Identitätsspalte.
IsKey true: Die Spalte ist eine von einer Reihe von Spalten im Rowset, die zusammengenommen die Zeile eindeutig identifizieren. Die Gruppe der Spalten, bei denen IsKey auf true festgelegt ist, muss eine Zeile im Rowset eindeutig identifizieren. Es ist nicht erforderlich, dass es sich bei dieser Menge Spalten um eine minimale Spaltenmenge handelt. Diese Spaltenmenge kann aus einem Primärschlüssel der Basistabelle, einer eindeutigen Bedingung oder einem eindeutigen Index gebildet werden.

false: Die Spalte ist nicht erforderlich, um die Zeile eindeutig zu identifizieren.
IsLong true: Die Spalte enthält ein Binary Long Object (BLOB), das sehr lange Daten enthält. Die Definition dessen, was als sehr umfangreiche Daten gilt, ist anbieterspezifisch.

false: Die Spalte enthält kein Blob (Binary Long Object), das sehr lange Daten enthält.
IsReadOnly true: Die Spalte kann nicht geändert werden.

false: Die Spalte kann geändert werden.
IsRowVersion true: Die Spalte enthält einen persistenten Zeilenbezeichner, der nicht in geschrieben werden kann, und hat keinen aussagekräftigen Wert außer zur Identität der Zeile.

false: Die Spalte enthält keinen persistenten Zeilenbezeichner, der nicht in geschrieben werden kann, und hat keinen aussagekräftigen Wert außer zur Identität der Zeile.
IsUnique true: Die Spalte hat den Typ timestamp.

false: Die Spalte hat nicht den Typ timestamp.
NonVersionedProviderType Der Typ der Spalte, unabhängig vom aktuellen Type System Version , der in der Verbindungszeichenfolge angegeben ist. Der zurückgegebene Wert stammt aus der SqlDbType -Enumeration.
NumericPrecision Wenn ProviderType ein numerischer Datentyp ist, ist dies die maximale Genauigkeit der Spalte. Die Genauigkeit hängt von der Definition der Spalte ab. Wenn ProviderType kein numerischer Datentyp ist, ist dies 255.
NumericScale Wenn ProviderType DBTYPE_DECIMAL oder DBTYPE_NUMERIC ist, die Anzahl der Ziffern rechts neben dem Dezimaltrennzeichen. Andernfalls ist dies 255.
ProviderSpecificDataType Gibt den anbieterspezifischen Datentyp der Spalte basierend auf dem Type System Version Schlüsselwort in der Verbindungszeichenfolge zurück.
ProviderType Der Zähler des Datentyps der Spalte. Wenn der Datentyp der Spalte von Zeile zu Zeile variiert, muss dies Object sein. Diese Spalte kann keinen NULL-Wert enthalten.
UdtAssemblyQualifiedName Wenn die Spalte ein benutzerdefinierter Typ (User-Defined Type, UDT) ist, ist dies der qualifizierte Name der UDT-Assembly gemäß AssemblyQualifiedName. Wenn die Spalte kein UDT ist, ist dies NULL.
XmlSchemaCollectionDatabase Der Name der Datenbank, in der sich die Schemaauflistung für diese XML-Instanz befindet, wenn die Zeile Informationen zu einer XML-Spalte enthält. Dieser Wert ist null (Nothing in Visual Basic), wenn die Auflistung in der aktuellen Datenbank definiert ist. Es ist auch NULL, wenn keine Schemaauflistung vorhanden ist. In diesem Fall sind die XmlSchemaCollectionName Spalten und XmlSchemaCollectionOwningSchema ebenfalls NULL.
Xmlschemacollectionname Der Name der Schemaauflistung für diese XML-Instanz, wenn die Zeile Informationen zu einer XML-Spalte enthält. Dieser Wert ist null (Nothing in Visual Basic), wenn keine zugeordnete Schemaauflistung vorhanden ist. Wenn der Wert NULL ist, sind die XmlSchemaCollectionDatabase Spalten und XmlSchemaCollectionOwningSchema ebenfalls NULL.
XmlSchemaCollectionOwningSchema Das besitzende relationale Schema, in dem sich die Schemaauflistung für diese XML-Instanz befindet, wenn die Zeile Informationen zu einer XML-Spalte enthält. Dieser Wert ist null (Nothing in Visual Basic), wenn die Auflistung in der aktuellen Datenbank definiert ist. Es ist auch NULL, wenn keine Schemaauflistung vorhanden ist. In diesem Fall sind die XmlSchemaCollectionDatabase Spalten und XmlSchemaCollectionName ebenfalls NULL.

Hinweis

Um sicherzustellen, dass Metadatenspalten die richtigen Informationen zurückgeben, müssen Sie aufrufen ExecuteReader , wobei der behavior Parameter auf KeyInfofestgelegt ist. Andernfalls geben einige Spalten in der Schematabelle möglicherweise Standarddaten, NULL oder falsche Daten zurück.

Gilt für: