SQL Server-Schemaauflistungen (ADO.NET)

Aktualisiert: November 2007

Der Microsoft .NET Framework-Datenanbieter für SQL Server unterstützt zusätzliche Schemaauflistungen neben den allgemeinen Schemaauflistungen. Die Schemaauflistungen unterscheiden sich bei verschiedenen Versionen von SQL Server leicht. Rufen Sie die GetSchema-Methode ohne Argumente oder mit dem Schemaauflistungsnamen "MetaDataCollections" auf, um die Liste der unterstützten Schemaauflistungen abzurufen. Daraufhin wird eine DataTable mit einer Liste der unterstützten Schemaauflistungen, der Anzahl der von diesen Schemaauflistungen unterstützten Einschränkungen und der Anzahl der von diesen Schemaauflistungen verwendeten Bezeichnerbestandteile zurückgegeben.

Datenbanken

ColumnName

DataType

Beschreibung

database_name

String

Name der Datenbank.

Dbid

Int16

Datenbank-ID.

create_date

DateTime

Erstellungsdatum der Datenbank.

ForeignKeys

ColumnName

DataType

Beschreibung

constraint_catalog

String

Katalog, zu dem die Einschränkung gehört.

constraint_schema

String

Schema, das die Einschränkung enthält.

constraint_name

String

Name.

table_catalog

String

Tabellenname, zu dem diese Einschränkung gehört.

table_schema

String

Schema, das die Tabelle enthält.

table_name

String

Tabellenname

constraint_type

String

Art der Einschränkung. Nur "FOREIGN KEY" zulässig.

is_deferrable

String

Gibt an, ob die Einschränkung verzögert werden kann. Gibt NO zurück.

initially_deferred

String

Gibt an, ob die Einschränkung anfangs verzögert werden kann. Gibt NO zurück.

Indizes

ColumnName

DataType

Beschreibung

constraint_catalog

String

Katalog, zu dem dieser Index gehört.

constraint_schema

String

Schema, das den Index enthält.

constraint_name

String

Name des Indexes.

table_catalog

String

Tabellenname, dem der Index zugeordnet ist.

table_schema

String

Schema, das die Tabelle enthält, der der Index zugeordnet ist.

table_name

String

Tabellenname.

Indizes (SQL Server 2008)

Mit der Einführung der .NET Framework-Version 3.5 SP1 und SQL Server 2008 wurden der "Indexes"-Schemaauflistung die folgenden Spalten hinzugefügt, um neue räumliche Typen, Filestream und Spalten mit geringer Dichte zu unterstützen. Diese Spalten werden in früheren Versionen von .NET Framework und SQL Server nicht unterstützt.

ColumnName

DataType

Beschreibung

type_desc

String

Die folgenden Indextypen sind möglich:

  • HEAP

  • CLUSTERED

  • NONCLUSTERED

  • XML

  • SPATIAL

IndexColumns

ColumnName

DataType

Beschreibung

constraint_catalog

String

Katalog, zu dem dieser Index gehört.

constraint_schema

String

Schema, das den Index enthält.

constraint_name

String

Name des Indexes.

table_catalog

String

Tabellenname, dem der Index zugeordnet ist.

table_schema

String

Schema, das die Tabelle enthält, der der Index zugeordnet ist.

table_name

String

Tabellenname.

column_name

String

Spaltenname, dem der Index zugeordnet ist.

ordinal_position

Int32

Ordinalposition der Spalte.

KeyType

UInt16

Der Typ des Objekts.

Procedures

Diese Auflistung ist nur in SQL Server 2000 und höher verfügbar.

ColumnName

DataType

Beschreibung

specific_catalog

String

Spezifischer Name für den Katalog.

specific_schema

String

Spezifischer Name des Schemas.

specific_name

String

Spezifischer Name des Katalogs.

routine_catalog

String

Katalog, zu dem die gespeicherte Prozedur gehört.

routine_schema

String

Schema, das die gespeicherte Prozedur enthält.

routine_name

String

Name der gespeicherten Prozedur.

routine_type

String

Gibt PROCEDURE für gespeicherte Prozeduren und FUNCTION für Funktionen zurück.

created

DateTime

Zeitpunkt der Erstellung der Prozedur.

last_altered

DateTime

Zeitpunkt der letzten Änderung der Prozedur.

ProcedureParameters

ColumnName

DataType

Beschreibung

specific_catalog

String

Katalogname der Prozedur, für die dies einen Parameter darstellt.

specific_schema

String

Schema, das die Prozedur enthält, zu der dieser Parameter gehört.

specific_name

String

Name der Prozedur, zu der dieser Parameter gehört.

ordinal_position

Int16

Ordinalposition des Parameters, beginnend bei 1. Für den Rückgabewert einer Prozedur ist dies 0 (null).

parameter_mode

String

Gibt bei einem Eingabeparameter IN zurück, bei einem Ausgabeparameter OUT und bei einem Eingabe-/Ausgabeparameter INOUT.

is_result

String

Gibt YES zurück, wenn das Ergebnis der Prozedur angegeben wird, die eine Funktion darstellt. Andernfalls wird NO zurückgegeben.

as_locator

String

Gibt YES bei Deklaration als Locator zurück. Andernfalls wird NO zurückgegeben.

parameter_name

String

Name des Parameters. NULL, wenn dies dem Rückgabewert einer Funktion entspricht.

data_type

String

Vom System bereitgestellter Datentyp.

character_maximum_length

Int32

Maximale Länge in Zeichen für binäre Datentypen oder Zeichendatentypen. Andernfalls wird NULL zurückgegeben.

character_octet_length

Int32

Maximale Länge in Byte für binäre Datentypen oder Zeichendatentypen. Andernfalls wird NULL zurückgegeben.

collation_catalog

String

Katalogname der Sortierung des Parameters. Wenn dieser keinem der Zeichentypen entspricht, wird NULL zurückgegeben.

collation_schema

String

Gibt immer NULL zurück.

collation_name

String

Name der Sortierung des Parameters. Wenn dieser keinem der Zeichentypen entspricht, wird NULL zurückgegeben.

character_set_catalog

String

Katalogname des Zeichensatzes des Parameters. Wenn dieser keinem der Zeichentypen entspricht, wird NULL zurückgegeben.

character_set_schema

String

Gibt immer NULL zurück.

character_set_name

String

Name des Zeichensatzes des Parameters. Wenn dieser keinem der Zeichentypen entspricht, wird NULL zurückgegeben.

numeric_precision

Byte

Genauigkeit von ungefähren numerischen Daten, genauen numerischen Daten, Ganzzahldaten und Währungsdaten. Andernfalls wird NULL zurückgegeben.

numeric_precision_radix

Int16

Genauigkeitsbasis von ungefähren numerischen Daten, genauen numerischen Daten, Ganzzahldaten und Währungsdaten. Andernfalls wird NULL zurückgegeben.

numeric_scale

Int32

Skala von ungefähren numerischen Daten, genauen numerischen Daten, Ganzzahldaten und Währungsdaten. Andernfalls wird NULL zurückgegeben.

datetime_precision

Int16

Genauigkeit in Bruchteilen von Sekunden, wenn der Parametertyp datetime oder smalldatetime ist. Andernfalls wird NULL zurückgegeben.

interval_type

String

NULL. Für die künftige Verwendung durch SQL Server reserviert.

interval_precision

Int16

NULL. Für die künftige Verwendung durch SQL Server reserviert.

Tabellen

ColumnName

DataType

Beschreibung

table_catalog

String

Katalog der Tabelle.

table_schema

String

Schema, das die Tabelle enthält.

table_name

String

Tabellenname.

table_type

String

Tabellentyp. Kann VIEW oder BASE TABLE sein.

Spalten

ColumnName

DataType

Beschreibung

table_catalog

String

Katalog der Tabelle.

table_schema

String

Schema, das die Tabelle enthält.

table_name

String

Tabellenname.

column_name

String

Spaltenname.

ordinal_position

Int16

Spalten-ID.

column_default

String

Standardwert der Spalte

is_nullable

String

Fähigkeit der Spalte, NULL-Werte zuzulassen. Wenn diese Spalte NULL zulässt, gibt die Spalte YES zurück. Andernfalls wird NO zurückgegeben.

data_type

String

Vom System bereitgestellter Datentyp.

character_maximum_length

Int32 – Sql8, Int16 – Sql7

Maximale Länge in Zeichen für binäre Daten, Zeichendaten oder Text- und Bilddaten. Andernfalls wird NULL zurückgegeben.

character_octet_length

Int32 – SQL8, Int16 – Sql7

Maximale Länge in Byte für binäre Daten, Zeichendaten oder Text- und Bilddaten. Andernfalls wird NULL zurückgegeben.

numeric_precision

Byte ohne Vorzeichen

Genauigkeit von ungefähren numerischen Daten, genauen numerischen Daten, Ganzzahldaten und Währungsdaten. Andernfalls wird NULL zurückgegeben.

numeric_precision_radix

Int16

Genauigkeitsbasis von ungefähren numerischen Daten, genauen numerischen Daten, Ganzzahldaten und Währungsdaten. Andernfalls wird NULL zurückgegeben.

numeric_scale

Int32

Skala von ungefähren numerischen Daten, genauen numerischen Daten, Ganzzahldaten und Währungsdaten. Andernfalls wird NULL zurückgegeben.

datetime_precision

Int16

Untertypcode für datetime- und SQL-92-Intervalldatentypen. Bei anderen Datentypen wird NULL zurückgegeben.

character_set_catalog

String

Gibt master zurück, wodurch die Datenbank angegeben wird, in der der Zeichensatz enthalten ist, wenn die Spalte den Typ Zeichendaten oder Textdaten aufweist. Andernfalls wird NULL zurückgegeben.

character_set_schema

String

Gibt immer NULL zurück.

character_set_name

String

Gibt den eindeutigen Namen für den Zeichensatz zurück, wenn diese Spalte den Typ Zeichendaten oder Textdaten aufweist. Andernfalls wird NULL zurückgegeben.

collation_catalog

String

Gibt master zurück, wodurch die Datenbank angegeben wird, in der die Sortierung definiert ist, wenn die Spalte den Typ Zeichendaten oder Textdaten aufweist. Andernfalls ist diese Spalte NULL.

Spalten (SQL Server 2008)

Mit der Einführung der .NET Framework-Version 3.5 SP1 und SQL Server 2008 wurden der "Columns"-Schemaauflistung die folgenden Spalten hinzugefügt, um neue räumliche Typen, Filestream und Spalten mit geringer Dichte zu unterstützen. Diese Spalten werden in früheren Versionen von .NET Framework und SQL Server nicht unterstützt.

ColumnName

DataType

Beschreibung

IS_FILESTREAM

String

YES, wenn die Spalte über ein FILESTREAM-Attribut verfügt.

NO, wenn die Spalte nicht über ein FILESTREAM-Attribut verfügt.

IS_SPARSE

String

YES, wenn es sich um eine Spalte mit geringer Dichte handelt.

NO, wenn es sich nicht um eine Spalte mit geringer Dichte handelt.

IS_COLUMN_SET

String

YES, wenn es sich um eine Spaltensatzspalte handelt.

NO, wenn es sich nicht um eine Spaltensatzspalte handelt.

AllColumns (SQL Server 2008)

Mit der Einführung der .NET Framework-Version 3.5 SP1 und SQL Server 2008 wurde die "AllColumns"-Schemaauflistung hinzugefügt, um Spalten mit geringer Dichte zu unterstützen. "AllColumns" wird in früheren Versionen von .NET Framework und SQL Server nicht unterstützt.

"AllColumns" hat die gleichen Einschränkungen und das gleiche resultierende "DataTable"-Schema wie die "Columns"-Schemaauflistung. Der einzige Unterschied ist, dass "AllColumns" Spaltensatzspalten enthält, die in der "Columns"-Schemaauflistung nicht enthalten sind. In der folgenden Tabelle werden diese Spalten beschrieben.

ColumnName

DataType

Beschreibung

table_catalog

String

Katalog der Tabelle.

table_schema

String

Schema, das die Tabelle enthält.

table_name

String

Tabellenname.

column_name

String

Spaltenname.

ordinal_position

Int16

Spalten-ID.

column_default

String

Standardwert der Spalte

is_nullable

String

Fähigkeit der Spalte, NULL-Werte zuzulassen. Wenn diese Spalte NULL zulässt, gibt diese Spalte YES zurück. Andernfalls wird NO zurückgegeben.

data_type

String

Vom System bereitgestellter Datentyp.

character_maximum_length

"Int32" für SQL Server 2000 und höher, "Int16" für SQL Server 7.0

Maximale Länge in Zeichen für binäre Daten, Zeichendaten oder Text- und Bilddaten. Andernfalls wird NULL zurückgegeben.

character_octet_length

"Int32" für SQL Server 2000 und höher, "Int16" für SQL Server 7.0

Maximale Länge in Bytes für binäre Daten, Zeichendaten oder Text- und Bilddaten. Andernfalls wird NULL zurückgegeben.

numeric_precision

Byte ohne Vorzeichen

Genauigkeit von ungefähren numerischen Daten, genauen numerischen Daten, Ganzzahldaten und Währungsdaten. Andernfalls wird NULL zurückgegeben.

numeric_precision_radix

Int16

Genauigkeitsbasis von ungefähren numerischen Daten, genauen numerischen Daten, Ganzzahldaten und Währungsdaten. Andernfalls wird NULL zurückgegeben.

numeric_scale

Int32

Skala von ungefähren numerischen Daten, genauen numerischen Daten, Ganzzahldaten und Währungsdaten. Andernfalls wird NULL zurückgegeben.

datetime_precision

Int16

Untertypcode für datetime- und SQL-92-Intervalldatentypen. Bei anderen Datentypen wird NULL zurückgegeben.

character_set_catalog

String

Gibt master zurück, wodurch die Datenbank angegeben wird, in der der Zeichensatz enthalten ist, wenn die Spalte den Typ Zeichendaten oder Textdaten aufweist. Andernfalls wird NULL zurückgegeben.

character_set_schema

String

Gibt immer NULL zurück.

character_set_name

String

Gibt den eindeutigen Namen für den Zeichensatz zurück, wenn diese Spalte den Typ Zeichendaten oder Textdaten aufweist. Andernfalls wird NULL zurückgegeben.

collation_catalog

String

Gibt master zurück, wodurch die Datenbank angegeben wird, in der die Sortierung definiert ist, wenn die Spalte den Typ Zeichendaten oder Textdaten aufweist. Andernfalls ist diese Spalte NULL.

IS_FILESTREAM

String

YES, wenn die Spalte über ein FILESTREAM-Attribut verfügt.

NO, wenn die Spalte nicht über ein FILESTREAM-Attribut verfügt.

IS_SPARSE

String

YES, wenn es sich um eine Spalte mit geringer Dichte handelt.

NO, wenn es sich nicht um eine Spalte mit geringer Dichte handelt.

IS_COLUMN_SET

String

YES, wenn es sich um eine Spaltensatzspalte handelt.

NO, wenn es sich nicht um eine Spaltensatzspalte handelt.

ColumnSetColumns (SQL Server 2008)

Mit der Einführung der .NET Framework-Version 3.5 SP1 und SQL Server 2008 wurde die "ColumnSetColumns"-Schemaauflistung hinzugefügt, um Spalten mit geringer Dichte zu unterstützen. "ColumnSetColumns" wird in früheren Versionen von .NET Framework und SQL Server nicht unterstützt. Die "ColumnSetColumns"-Schemaauflistung gibt das Schema für alle Spalten in einem Spaltensatz zurück. In der folgenden Tabelle werden diese Spalten beschrieben.

ColumnName

DataType

Beschreibung

table_catalog

String

Katalog der Tabelle.

table_schema

String

Schema, das die Tabelle enthält.

table_name

String

Tabellenname.

column_name

String

Spaltenname.

ordinal_position

Int16

Spalten-ID.

column_default

String

Standardwert der Spalte

is_nullable

String

Fähigkeit der Spalte, NULL-Werte zuzulassen. Wenn diese Spalte NULL zulässt, gibt die Spalte YES zurück. Andernfalls wird NO zurückgegeben.

data_type

String

Vom System bereitgestellter Datentyp.

character_maximum_length

Int32 für SQL Server 2000 und höher, Int16 für SQL Server 7.0

Maximale Länge in Zeichen für binäre Daten, Zeichendaten oder Text- und Bilddaten. Andernfalls wird NULL zurückgegeben.

character_octet_length

Int32 für SQL Server 2000 und höher, Int16 für SQL Server 7.0

Maximale Länge in Byte für binäre Daten, Zeichendaten oder Text- und Bilddaten. Andernfalls wird NULL zurückgegeben.

numeric_precision

Byte ohne Vorzeichen

Genauigkeit von ungefähren numerischen Daten, genauen numerischen Daten, Ganzzahldaten und Währungsdaten. Andernfalls wird NULL zurückgegeben.

numeric_precision_radix

Int16

Genauigkeitsbasis von ungefähren numerischen Daten, genauen numerischen Daten, Ganzzahldaten und Währungsdaten. Andernfalls wird NULL zurückgegeben.

numeric_scale

Int32

Skala von ungefähren numerischen Daten, genauen numerischen Daten, Ganzzahldaten und Währungsdaten. Andernfalls wird NULL zurückgegeben.

datetime_precision

Int16

Untertypcode für datetime- und SQL-92-Intervalldatentypen. Bei anderen Datentypen wird NULL zurückgegeben.

character_set_catalog

String

Gibt master zurück, wodurch die Datenbank angegeben wird, in der der Zeichensatz enthalten ist, wenn die Spalte den Typ Zeichendaten oder Textdaten aufweist. Andernfalls wird NULL zurückgegeben.

character_set_schema

String

Gibt immer NULL zurück.

character_set_name

String

Gibt den eindeutigen Namen für den Zeichensatz zurück, wenn diese Spalte den Typ Zeichendaten oder Textdaten aufweist. Andernfalls wird NULL zurückgegeben.

collation_catalog

String

Gibt master zurück, wodurch die Datenbank angegeben wird, in der die Sortierung definiert ist, wenn die Spalte den Typ Zeichendaten oder Textdaten aufweist. Andernfalls ist diese Spalte NULL.

IS_FILESTREAM

String

YES, wenn die Spalte über ein FILESTREAM-Attribut verfügt.

NO, wenn die Spalte nicht über ein FILESTREAM-Attribut verfügt.

IS_SPARSE

String

YES, wenn es sich um eine Spalte mit geringer Dichte handelt.

NO, wenn es sich nicht um eine Spalte mit geringer Dichte handelt.

IS_COLUMN_SET

String

YES, wenn es sich um eine Spaltensatzspalte handelt.

NO, wenn es sich nicht um eine Spaltensatzspalte handelt.

Users

ColumnName

DataType

Beschreibung

uid

Int16

Benutzer-ID, eindeutig innerhalb dieser Datenbank. 1 ist der Datenbankbesitzer.

name

String

Benutzername oder Gruppenname, eindeutig innerhalb dieser Datenbank.

createdate

DateTime

Datum, an dem das Konto hinzugefügt wurde.

updatedate

DateTime

Datum, an dem das Konto zuletzt geändert wurde.

Ansichten

Diese Auflistung ist nur in SQL Server 2000 und höher verfügbar.

ColumnName

DataType

Beschreibung

table_catalog

String

Katalog der Ansicht.

table_schema

String

Schema, das die Ansicht enthält.

table_name

String

Ansichtsname.

check_option

String

Typ von WITH CHECK OPTION. Ist CASCADE, wenn die ursprüngliche Ansicht mit der WITH CHECK OPTION erstellt wurde. Andernfalls wird NONE zurückgegeben.

is_updatable

String

Gibt an, ob die Ansicht aktualisiert werden kann. Gibt immer NO zurück.

ViewColumns

ColumnName

DataType

Beschreibung

view_catalog

String

Katalog der Ansicht.

view_schema

String

Schema, das die Ansicht enthält.

view_name

String

Ansichtsname.

table_catalog

String

Katalog der Tabelle, die dieser Ansicht zugeordnet ist.

table_schema

String

Schema, das die Tabelle enthält, die dieser Ansicht zugeordnet ist.

table_name

String

Name der Tabelle, die der Ansicht zugeordnet ist. Basistabelle.

column_name

String

Spaltenname.

UserDefinedTypes

Diese Auflistung ist nur in SQL Server 2005 und höher verfügbar.

ColumnName

DataType

Beschreibung

assembly_name

String

Der Name der Datei für die Assembly.

UDT_name

String

Der Klassenname für die Assembly.

version_major

Objekt

Nummer der Hauptversion.

version_minor

Objekt

Nummer der Nebenversion.

version_build

Objekt

Buildnummer.

version_revision

Objekt

Revisionsnummer.

Culture_info

Objekt

Die diesem UDT zugeordneten Kulturinformationen.

Public_key

Objekt

Der von dieser Assembly verwendete öffentliche Schlüssel.

Is_fixed_length

Boolean

Gibt an, ob die Länge des Typs immer mit max_length übereinstimmt.

max_length

Int16

Maximale Länge des Typs in Byte.

permission_set_desc

String

Der angezeigte Name für den Berechtigungssatz/die Sicherheitsebene der Assembly.

create_date

DateTime

Datum, an dem die Assembly erstellt/registriert wurde.

Siehe auch

Weitere Ressourcen

Abrufen von Schemainformationen aus einer Datenbank (ADO.NET)