Freigeben über


Allgemeine Schemaauflistungen

Gilt für: .NET Framework .NET .NET Standard

Herunterladen von ADO.NET

Die allgemeinen Schemasammlungen sind die Schemasammlungen, die von allen von .NET verwalteten Anbietern implementiert werden. Sie können einen von .NET verwalteten Anbieter abfragen, um die Liste der unterstützten Schemasammlungen zu ermitteln. Rufen Sie hierzu die GetSchema-Methode ohne Argumente oder mit dem Schemasammlungsnamen „MetaDataCollections“ auf. Diese Methode gibt eine DataTable mit einer Liste der unterstützten Schemasammlungen, der Anzahl der von ihnen unterstützten Einschränkungen und der Anzahl der von ihnen verwendeten Bezeichnerteile zurück. In diesen Auflistungen werden alle erforderlichen Spalten beschrieben. Anbietern steht es frei, weitere Spalten hinzufügen. Beispielsweise fügt der Microsoft SqlClient-Datenanbieter für SQL Server der Sammlung der Einschränkungen ParameterName hinzu.

Wenn ein Anbieter den Wert einer erforderlichen Spalte nicht ermitteln kann, wird NULL zurückgegeben.

Weitere Informationen zur Verwendung der GetSchema-Methoden finden Sie unter GetSchema und Schemasammlungen.

MetaDataCollections

Mithilfe dieser Auflistung werden Informationen zu allen Schemaauflistungen verfügbar gemacht, die von dem Anbieter unterstützt werden, über den derzeit eine Verbindung mit der Datenbank hergestellt wird.

ColumnName DataType BESCHREIBUNG
CollectionName string Hierbei handelt es sich um den Namen der Sammlung, der zum Zurückgeben der Sammlung an die GetSchema-Methode übergeben werden soll.
NumberOfRestrictions int Die Anzahl der Einschränkungen, die für die Auflistung angegeben werden können.
NumberOfIdentifierParts int Die Anzahl der Bestandteile im zusammengesetzten Bezeichner/Datenbank-Objektnamen. In SQL Server zum Beispiel wäre der Wert 3 für Tabellen und 4 für Spalten.

DataSourceInformation

Diese Schemasammlung stellt Informationen zu Datenquellen bereit, mit denen der Microsoft SqlClient-Datenanbieter für SQL Server derzeit verbunden ist.

ColumnName DataType BESCHREIBUNG
CompositeIdentifierSeparatorPattern string Der reguläre Ausdruck, der den Trennzeichen zum Trennen der Bestandteile in einem zusammengesetzten Bezeichner entspricht. Beispielsweise \. (für SQL Server).

Ein zusammengesetzter Bezeichner wird i. d. R für einen Datenbank-Objektnamen verwendet, z. B.: pubs.dbo.authors oder pubs@dbo.authors.

Verwenden Sie für SQL Server den regulären Ausdruck \..
DataSourceProductName string Hierbei handelt es sich um den Namen des Produkts, auf das der Anbieter zugreift, z. B. „SQLServer“.
DataSourceProductVersion string Gibt die Version des Produkts, auf das durch den Anbieter zugegriffen wird, im systemeigenen Format der Datenquellen an, nicht im Microsoft-Format.

In einigen Fällen sind DataSourceProductVersion und DataSourceProductVersionNormalized der gleiche Wert.
DataSourceProductVersionNormalized string Eine normalisierte Version der Datenquelle, damit sie mithilfe von String.Compare() verglichen werden kann. Dieses Format ist für alle Versionen des Anbieters konsistent, um zu verhindern, dass Version 10 zwischen Version 1 und Version 2 sortiert wird.

SQL Server verwendet z. B. das Microsoft-Standardformat nn.nn.nnnn.

In einigen Fällen sind DataSourceProductVersion und DataSourceProductVersionNormalized der gleiche Wert.
GroupByBehavior GroupByBehavior Gibt die Beziehung zwischen den Spalten in einer GROUP BY-Klausel und den nicht zusammengesetzten Spalten in der Auswahlliste an.
IdentifierPattern string Ein regulärer Ausdruck, der einem Bezeichner entspricht und über einen Wert verfügt, der den Bezeichner darstellt. Beispiel: [A-Za-z0-9_#$].
IdentifierCase IdentifierCase Gibt an, ob die Groß- und Kleinschreibung bei nicht in Anführungszeichen stehenden Bezeichnern berücksichtigt werden soll.
OrderByColumnsInSelect bool Gibt an, ob Spalten in einer ORDER BY-Klausel in der Auswahlliste vorhanden sein müssen. Der Wert true gibt an, dass sie in der Auswahlliste enthalten sein müssen. Der Wert false gibt an, dass sie in der Auswahlliste nicht enthalten sein müssen.
ParameterMarkerFormat string Eine Formatzeichenfolge, die die Formatierung des Parameters darstellt.

Wenn benannte Parameter von der Datenquelle unterstützt werden, muss sich der erste Platzhalter in dieser Zeichenfolge an der Stelle befinden, an der der Parametername formatiert wird.

Wenn die Datenquelle beispielsweise erwartet, dass Parameter benannt sind und das Präfix „:“ aufweisen, würde diese Zeichenfolge „:{0}“ lauten. Bei der Formatierung dieses Parameters mit dem Namen „p1“ lautet die resultierende Zeichenfolge „:p1“.

Wenn die Datenquelle erwartet, dass Parameter das Präfix „@“ aufweisen, dieses jedoch bereits in den Namen enthalten ist, wäre die Zeichenfolge „{0}“. Das Ergebnis der Formatierung eines Parameters mit dem Namen „@p1“ wäre dann „@p1“.

Für Datenquellen, die keine benannten Parameter und stattdessen die Verwendung des Zeichens „?“ erwarten, kann für die Formatzeichenfolge „?“ angegeben werden. Dadurch wird der Parametername ignoriert.
ParameterMarkerPattern string Ein regulärer Ausdruck, der einer Parametermarkierung entspricht. Er verfügt (sofern vorhanden) über einen Wert, der dem Parameternamen entspricht.

Wenn beispielsweise benannte Parameter mit einem vorangestellten „@“-Zeichen unterstützt werden, das in den Parameternamen eingeschlossen wird, lautet das Muster „(\@[A-Za-z0-9_$#]*)“.

Wenn benannte Parameter jedoch mit einem vorangestellten „:“-Zeichen unterstützt werden, das nicht Teil des Parameternamens ist, lautet das Muster „:([A-Za-z0-9_$#]\*)“.

Wenn die Datenquelle keine benannten Parameter unterstützt, lautet das Muster „?“.
ParameterNameMaxLength int Die maximale Länge eines Parameternamens in Zeichen. In Visual Studio werden im Falle der Unterstützung von Parameternamen 30 Zeichen als Mindestwert für die maximale Länge erwartet.

Wenn die Datenquelle keine benannten Parameter unterstützt, gibt diese Eigenschaft 0 (null) zurück.
ParameterNamePattern string Ein regulärer Ausdruck, der den gültigen Parameternamen entspricht. Verschiedene Datenquellen verfügen über unterschiedliche Regeln für die Zeichen, die für Parameternamen verwendet werden können.

Visual Studio erwartet, dass die Zeichen \p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Nd}, wenn Parameternamen unterstützt werden, der unterstützte Mindestsatz von Zeichen sind, die für Parameternamen gültig sind.
QuotedIdentifierPattern string Ein regulärer Ausdruck, der einem Bezeichner in Anführungszeichen entspricht und über einen Wert verfügt, der den Bezeichner ohne Anführungszeichen darstellt. Wenn in der Datenquelle beispielsweise doppelte Anführungszeichen zum Identifizieren von Bezeichnern in Anführungszeichen verwendet wurden, lautet das Muster: „(([^\\"]\|\\"\\")*)“.
QuotedIdentifierCase IdentifierCase Gibt an, ob die Groß- und Kleinschreibung bei Bezeichnern in Anführungszeichen berücksichtigt werden muss.
StatementSeparatorPattern string Ein regulärer Ausdruck, der dem Trennzeichen für Anweisungen entspricht.
StringLiteralPattern string Ein regulärer Ausdruck, der einem Zeichenfolgenliteral entspricht und über einen Wert verfügt, der das Literal darstellt. Wenn in der Datenquelle beispielsweise einfache Anführungszeichen zum Identifizieren von Zeichenfolgen verwendet wurden, lautet das Muster: „('([^']\|'')*')“.
SupportedJoinOperators SupportedJoinOperators Gibt an, welche SQL-Joinanweisungen von der Datenquelle unterstützt werden.

DataTypes

Mithilfe dieser Schemaauflistung werden Informationen zu den Datentypen verfügbar gemacht, die von der Datenbank unterstützt werden, mit der der Anbieter derzeit verbunden ist.

ColumnName DataType BESCHREIBUNG
TypName string Der anbieterspezifische Datentypname.
ProviderDbType int Hierbei handelt es sich um den anbieterspezifischen Typwert, der beim Angeben des Typs eines Parameters verwendet werden sollte, Beispiel: SqlDbType.Money.
ColumnSize long Die Länge einer nicht numerischen Spalte oder eines Parameters. Dieser Wert bezieht sich entweder auf das Maximum oder die Länge, die vom Anbieter für diesen Typ definiert wurde.

Bei Zeichendaten ist dieser Wert die maximale oder definierte Länge in Einheiten, die von der Datenquelle definiert wird.

Bei date-time-Datentypen ist dieser Wert die Länge der Zeichenfolgendarstellung (wobei die maximal zulässige Genauigkeit der Komponente für Sekundenbruchteile vorausgesetzt wird).

Wenn der Datentyp numerisch ist, ist dieser Wert die obere Grenze der maximalen Genauigkeit des Datentyps.
CreateFormat string Formatzeichenfolge, die darstellt, wie diese Spalte einer Datendefinitionsanweisung (z. B. CREATE TABLE) hinzugefügt wird. Jedes Element im CreateParameter-Array muss durch eine „Parametermarkierung“ in der Formatzeichenfolge dargestellt werden.

Für den SQL-Datentyp DECIMAL ist eine Angabe zur Genauigkeit und zur Dezimalstellenanzahl erforderlich. In diesem Fall lautet die Formatzeichenfolge „DECIMAL({0},{1})“.
CreateParameters string Die Erstellungsparameter, die beim Erstellen einer Spalte dieses Datentyps angegeben werden müssen. Jeder Erstellungsparameter wird in der Zeichenfolge aufgeführt, getrennt durch ein Komma in der Reihenfolge, in der er angegeben werden soll.

Für den SQL-Datentyp DECIMAL ist eine Angabe zur Genauigkeit und zur Dezimalstellenanzahl erforderlich. In diesem Fall müssen die Erstellungsparameter die Zeichenfolge "Genauigkeit, Dezimalstellenanzahl" enthalten.

In einem Textbefehl zum Erstellen einer DECIMAL-Spalte mit einer Genauigkeit von 10 und einer Dezimalstellenanzahl von 2 lautet der Wert der CreateFormat-Spalte möglicherweise „DECIMAL({0},{1})“ und die vollständige Typspezifikation wäre dann „DECIMAL(10,2)“.
DataType string Hierbei handelt es sich um den Namen des .NET-Typs des Datentyps.
IsAutoincrementable bool true – Werte dieses Datentyps können automatisch erhöht werden.

false – Werte dieses Datentyps können nicht automatisch erhöht werden.

Diese Eigenschaft gibt lediglich an, ob eine Spalte dieses Datentyps automatisch inkrementiert werden kann, nicht, dass alle Spalten dieses Typs automatisch inkrementiert werden.
IsBestMatch bool true – Der Datentyp weist die höchste Übereinstimmung unter allen Datentypen im Datenspeicher auf und ist der .NET-Datentyp, der durch den Wert in der DataType-Spalte angegeben wird.

false – Der Datentyp weist nicht die höchste Übereinstimmung auf.

Für jede Gruppe von Zeilen, in denen der Wert der DataType-Spalte gleich ist, wird die IsBestMatch-Spalte in nur einer Zeile auf true festgelegt.
IsCaseSensitive bool true – Der Datentyp ist ein Zeichentyp und die Groß-/Kleinschreibung wird beachtet.

false – Der Datentyp ist kein Zeichentyp oder die Groß-/Kleinschreibung wird nicht beachtet.
IsFixedLength bool true – Spalten dieses Datentyps, die von der Datendefinitionssprache (Data Definition Language, DDL) erstellt werden, haben eine feste Länge.

false – Spalten dieses Datentyps, die von der DDL erstellt werden, haben eine variable Länge.

DBNull.Value – Es ist nicht bekannt, ob der Anbieter dieses Feld einer Spalte mit fester oder variabler Länge zuordnet.
IsFixedPrecisionScale bool true – Der Datentyp verfügt über eine feste Genauigkeit und Dezimalstellen.

false – Der Datentyp hat keine feste Genauigkeit und Skalierung.
IsLong bool true – Der Datentyp enthält sehr lange Daten. Die Definition sehr langer Daten ist anbieterspezifisch.

false – Der Datentyp enthält keine sehr langen Daten.
IsNullable bool true – Der Datentyp lässt Nullwerte zu.

false – Der Datentyp lässt keine Nullwerte zu.

DBNull.Value – Es ist nicht bekannt, ob der Datentyp Nullwerte zulässt.
IsSearchable bool true – Der Datentyp kann in einer WHERE-Klausel mit jedem Operator außer dem LIKE-Prädikat verwendet werden.

false – Der Datentyp kann nicht in einer WHERE-Klausel mit einem Operator außer dem LIKE-Prädikat verwendet werden.
IsSearchableWithLike bool true – Der Datentyp kann mit dem LIKE-Prädikat verwendet werden.

false – Der Datentyp kann nicht mit dem LIKE-Prädikat verwendet werden.
IsUnsigned bool true – Der Datentyp ist ohne Vorzeichen.

false – Der Datentyp hat ein Vorzeichen.

DBNull.Value – Gilt nicht für den Datentyp.
MaximumScale short Wenn der Typindikator ein numerischer Typ ist, ist dieser Wert die maximale Anzahl von Ziffern, die rechts vom Dezimaltrennzeichen zulässig sind. Andernfalls ist der Wert DBNull.Value.
MinimumScale short Wenn der Typindikator ein numerischer Typ ist, ist dieser Wert die Mindestanzahl von Ziffern, die rechts vom Dezimaltrennzeichen zulässig ist. Andernfalls ist der Wert DBNull.Value.
IsConcurrencyType bool true – Der Datentyp wird von der Datenbank jedes Mal aktualisiert, wenn die Zeile geändert wird und sich der Wert der Spalte von allen vorherigen Werten unterscheidet.

false – Der Datentyp wird bei jeder Änderung der Zeile von der Datenbank aktualisiert.

DBNull.Value – Die Datenbank unterstützt diesen Datentyp nicht.
IsLiteralSupported bool true – Der Datentyp kann als Literal ausgedrückt werden.

false – Der Datentyp kann nicht als Literal ausgedrückt werden.
LiteralPrefix string Das auf ein angegebenes Literal angewendete Präfix.
LiteralSuffix string Das auf ein angegebenes Literal angewendete Suffix.

Beschränkungen

Mithilfe dieser Schemaauflistung werden Informationen zu den Einschränkungen verfügbar gemacht, die vom Anbieter unterstützt werden, über den derzeit eine Verbindung mit der Datenbank hergestellt wird.

ColumnName DataType BESCHREIBUNG
CollectionName string Der Name der Auflistung, auf die diese Einschränkungen angewendet werden.
RestrictionName string Der Name der Einschränkung in der Auflistung.
RestrictionDefault string Ignoriert.
RestrictionNumber int Die tatsächliche Position in den Auflistungseinschränkungen, an der sich diese bestimmte Einschränkung befindet.

ReservedWords

Mithilfe dieser Schemaauflistung werden Informationen zu den Wörtern verfügbar gemacht, die von der Datenbank reserviert sind, mit der der Anbieter derzeit verbunden ist.

ColumnName DataType BESCHREIBUNG
ReservedWord string Hierbei handelt es sich um ein anbieterspezifisches reserviertes Wort.

Weitere Informationen: