Gemeinsame Schemasammlungen

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.
Anzahl der Einschränkungen int Die Anzahl der Einschränkungen, die für die Sammlung 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.

Datenquelleninformationen

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

ColumnName Datentyp BESCHREIBUNG
CompositeIdentifierSeparatorPattern string Der reguläre Ausdruck zum Abgleichen der Trennzeichen in einem zusammengesetzten Bezeichner. 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 mit einem Bezeichner übereinstimmt und dessen Übereinstimmungswert der Bezeichner ist. Beispiel: [A-Za-z0-9_#$].
IdentifierCase IdentifierCase Gibt an, ob nicht in Anführungszeichen stehende Bezeichner als groß-/kleinschreibungssensitiv behandelt werden oder nicht.
OrderByColumnsInSelect bool Gibt an, ob Spalten in einer ORDER BY-Klausel in der SELECT-Liste enthalten 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 mit einem Bezeichner in Anführungszeichen übereinstimmt und als Trefferwert den Bezeichner selbst ohne die Anführungszeichen hat. 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 bei in Anführungszeichen gesetzten Bezeichnern die Groß- und Kleinschreibung beachtet wird oder nicht.
StatementSeparatorPattern string Ein regulärer Ausdruck, der mit dem Anweisungstrennzeichen übereinstimmt.
Zeichenfolgenliteralmuster string Ein regulärer Ausdruck, der mit einem Stringliteral übereinstimmt und als Übereinstimmungswert das Literal selbst hat. Wenn in der Datenquelle beispielsweise einfache Anführungszeichen zum Identifizieren von Zeichenfolgen verwendet wurden, lautet das Muster: „('([^']\|'')*')“.
Unterstützte Join-Operatoren 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.
Spaltengröße 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 Datums-/Uhrzeitdatentypen ist dieser Wert die Länge der Zeichenfolgendarstellung (unter Annahme der maximal zulässigen Präzision der Sekundenbruchteil-Komponente).

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

Zum Beispiel benötigt der SQL-Datentyp DECIMAL eine Präzision und eine Skalierung. 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 sollten die Erstellungsparameter die Zeichenfolge „precision, scale“ 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 Zeichenfolgetyp, und es wird zwischen Groß- und Kleinschreibung unterschieden.

false - Der Datentyp ist kein Zeichentyp oder unterscheidet nicht zwischen Groß- und Kleinschreibung.
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 hat eine feste Präzision und Skalierung.

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 ist vorzeichenbehaftet.

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.
Mindestskalierung 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 Beschränkung in der Sammlung.
RestrictionDefault string Ignoriert.
Beschränkungsnummer int Die tatsächliche Stelle innerhalb der Einschränkungen der Sammlung, unter die diese bestimmte Einschränkung fällt.

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
Reserviertes Wort string Hierbei handelt es sich um ein anbieterspezifisches reserviertes Wort.

Siehe auch: