Freigeben über


Informationsschemasichten (Transact-SQL)

Eine Informationsschemasicht ist eine der Methoden, die SQL Server zum Abrufen von Metadaten bereitstellt.

Wichtiger HinweisWichtig

An Informationsschemasichten wurden einige Änderungen vorgenommen, wodurch die Abwärtskompatibilität nicht mehr gegeben ist. Diese Änderungen werden in den betreffenden Themen für die jeweiligen Sichten beschrieben.

HinweisHinweis

Informationsschemasichten stellen eine interne, von den Systemtabellen unabhängige Darstellung der SQL Server-Metadaten bereit. Informationsschemasichten ermöglichen die einwandfreie Ausführung von Anwendungen, auch wenn an den zugrunde liegenden Systemtabellen erhebliche Änderungen vorgenommen wurden. Die in SQL Server enthaltenen Informationsschemasichten entsprechen der Definition des ISO-Standards für INFORMATION_SCHEMA.

SQL Server unterstützt eine dreiteilige Benennungskonvention beim Verweis auf den aktuellen Server. Der ISO-Standard unterstützt ebenfalls eine dreiteilige Benennungskonvention. Die Namen, die in den beiden Konventionen verwendet werden, sind jedoch unterschiedlich. Die Informationsschemasichten sind in einem speziellen Schema namens INFORMATION_SCHEMA definiert. Dieses Schema ist in jeder Datenbank enthalten. Jede Informationsschemasicht enthält die Metadaten für alle in der jeweiligen Datenbank gespeicherten Datenobjekte. In der folgenden Tabelle werden die Beziehungen zwischen den SQL Server-Namen und den SQL-Standardnamen aufgeführt.

SQL Server-Name

Entsprechender SQL-Standardname

Datenbank

Katalog

Schema

Schema

Objekt

Objekt

Benutzerdefinierter Datentyp (alias)

Domäne

Diese Namenzuordnungskonvention betrifft die folgenden ISO-kompatiblen SQL Server-Sichten.

Einige Sichten enthalten Verweise auf verschiedene Klassen von Daten, z. B. Zeichendaten oder binäre Daten.

Wie im folgenden Beispiel gezeigt müssen Sie einen qualifizierten Namen verwenden, der den Namen des INFORMATION_SCHEMA-Schemas enthält, wenn Sie auf die Informationsschemasichten verweisen.

USE AdventureWorks;
GO

SELECT ccu.TABLE_SCHEMA, ccu.TABLE_NAME, ccu.COLUMN_NAME, cc.CONSTRAINT_SCHEMA, cc.CONSTRAINT_NAME, cc.CHECK_CLAUSE
FROM INFORMATION_SCHEMA.CHECK_CONSTRAINTS AS cc
INNER JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE AS ccu
    ON cc.CONSTRAINT_NAME = ccu.CONSTRAINT_NAME;