Freigeben über


SQL Server-Schemaauflistungen (ADO.NET)

Der Microsoft .NET Framework-Datenanbieter für SQL Server unterstützt neben den allgemeinen Schemaauflistungen auch weitere Schemaauflistungen. Die Schemaauflistungen sind je nach verwendeter SQL Server-Version verschieden. Um eine Liste der unterstützten Schemaauflistungen zu ermitteln, rufen Sie die GetSchema-Methode entweder ohne Argumente oder mit dem Schemaauflistungsnamen "MetaDataCollections" auf. Dadurch wird ein DataTable-Objekt 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 Bezeichnerteilen zurückgegeben.

Datenbanken

Spaltenname

Datentyp

Beschreibung

database_name

String

Name der Datenbank

Dbid

Int16

Datenbank-ID

create_date

DateTime

Erstellungsdatum der Datenbank

ForeignKeys

Spaltenname

Datentyp

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

Spaltenname

Datentyp

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)

Ab .NET Framework, Version 3.5 SP1, und SQL Server 2008 wurden der Indizes-Schemaauflistung die folgenden Spalten hinzugefügt, um neue räumliche Typen, Dateistream und Spalten mit geringer Dichte unterstützen zu können. Diese Spalten werden in früheren Versionen von .NET Framework und von SQL Server nicht unterstützt.

Spaltenname

Datentyp

Beschreibung

type_desc

String

Der Index weist einen der folgenden Typen auf:

  • HEAP

  • CLUSTERED

  • NONCLUSTERED

  • XML

  • SPATIAL

Indexspalten

Spaltenname

Datentyp

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 Objekttyp

Prozeduren

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

Spaltenname

Datentyp

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.

Prozedurparameter

Spaltenname

Datentyp

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 mit 1. Für den Rückgabewert einer Prozedur ist dies 0.

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

Spaltenname

Datentyp

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

Spaltenname

Datentyp

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.

Columns (SQL Server 2008)

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

Spaltenname

Datentyp

Beschreibung

IS_FILESTREAM

String

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

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

IS_SPARSE

String

YES, wenn die Spalte eine Spalte mit geringer Dichte ist.

NO, wenn die Spalte keine Spalte mit geringer Dichte ist.

IS_COLUMN_SET

String

YES, wenn die Spalte eine Spaltensatzspalte ist.

NO, wenn die Spalte keine Spaltensatzspalte ist.

AllColumns (SQL Server 2008)

Ab .NET Framework, Version 3.5 SP1, und SQL Server 2008 wurde die AllColumns-Schemaauflistung hinzugefügt, um Spalten mit geringer Dichte unterstützen zu können. AllColumns wird in früheren Versionen von .NET Framework und von SQL Server nicht unterstützt.

AllColumns hat die gleichen Einschränkungen und das resultierende DataTable-Schema wie die Columns-Schemaauflistung. Der einzige Unterschied besteht darin, dass AllColumns Spaltensatzspalten einschließt, die nicht in der Columns-Schemaauflistung enthalten sind. In der folgenden Liste werden diese Spalten beschrieben.

Spaltenname

Datentyp

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 das FILESTREAM-Attribut verfügt.

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

IS_SPARSE

String

YES, wenn die Spalte eine Spalte mit geringer Dichte ist.

NO, wenn die Spalte keine Spalte mit geringer Dichte ist.

IS_COLUMN_SET

String

YES, wenn die Spalte eine Spaltensatzspalte ist.

NO, wenn die Spalte keine Spaltensatzspalte ist.

ColumnSetColumns (SQL Server 2008)

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

Spaltenname

Datentyp

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 das FILESTREAM-Attribut verfügt.

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

IS_SPARSE

String

YES, wenn die Spalte eine Spalte mit geringer Dichte ist.

NO, wenn die Spalte keine Spalte mit geringer Dichte ist.

IS_COLUMN_SET

String

YES, wenn die Spalte eine Spaltensatzspalte ist.

NO, wenn die Spalte keine Spaltensatzspalte ist.

Benutzer

Spaltenname

Datentyp

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.

Spaltenname

Datentyp

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

Ansichtsspalten

Spaltenname

Datentyp

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.

Spaltenname

Datentyp

Beschreibung

assembly_name

String

Der Name der Datei für die Assembly.

UDT_name

String

Der Klassenname für die Assembly.

version_major

Object

Nummer der Hauptversion

version_minor

Object

Nummer der Nebenversion

version_build

Object

Buildnummer

version_revision

Object

Revisionsnummer

Culture_info

Object

Die diesem UDT zugeordneten Kulturinformationen.

Public_key

Object

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 die Berechtigungen/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)