Teilen über


Systembasistabellen

Gilt für: SQL Server Azure SQL Managed Instance

Systembasistabellen sind die zugrunde liegenden Tabellen, in denen die Metadaten für eine bestimmte Datenbank gespeichert werden. Die Masterdatenbank ist in dieser Hinsicht besonders, da sie einige zusätzliche Tabellen enthält, die in keiner der anderen Datenbanken gefunden werden. Diese Tabellen enthalten permanente Metadaten, deren Bereich serverweit ist.

Wichtig

Die Systembasistabellen werden nur innerhalb der SQL Server-Datenbank-Engine verwendet und dienen nicht der allgemeinen Kundennutzung. Sie können geändert werden, und ihre Kompatibilität wird nicht garantiert.

Metadaten-Systembasistabelle

Ein Grantee, der ÜBER DIE BERECHTIGUNG CONTROL, ALTER oder VIEW DEFINITION für eine Datenbank verfügt, kann systembasistabellenmetadaten in der Katalogansicht "sys.objects " anzeigen. Der Grantee kann auch die Namen und Objekt-IDs von Systembasistabellen mithilfe integrierter Funktionen wie OBJECT_NAME und OBJECT_ID auflösen.

Um eine Bindung an eine Systembasistabelle herzustellen, muss ein Benutzer mithilfe der dedizierten Administratorverbindung (DAC) eine Verbindung mit der SQL Server-Instanz herstellen. Der Versuch, eine SELECT-Abfrage aus einer Systembasistabelle auszuführen, ohne dass mithilfe von DAC eine Verbindung hergestellt wurde, löst einen Fehler aus.

Wichtig

Der Zugriff auf Systembasistabellen mithilfe von DAC wurde nur für Microsoft-Mitarbeiter entwickelt, und es handelt sich nicht um ein unterstütztes Kundenszenario.

Systembasistabellen

In der folgenden Tabelle werden die einzelnen Systembasistabellen in SQL Server aufgelistet und beschrieben.

Basistabelle Beschreibung
sys.sysschobjs Ist in jeder Datenbank vorhanden. Jede Zeile stellt ein Objekt in der Datenbank dar.
sys.sysbinobjs Ist in jeder Datenbank vorhanden. Enthält eine Zeile für jede Service Broker-Entität in der Datenbank. Service Broker-Entitäten schließen Folgendes ein:

Nachrichtentyp

Dienstvertrag

Dienst

Die Namen und Typen verwenden binäre Sortierung, die nicht geändert wird.
sys.sysclsobjs Ist in jeder Datenbank vorhanden. Enthält eine Zeile für jede klassifizierte Entität, für die die gleichen allgemeinen Eigenschaften gelten, darunter die folgenden:

Assembly

Sicherungsmedium

Volltextkatalog

Partitionsfunktion

Partitionsschema

Dateigruppe

Verschleierungsschlüssel

Schema
sys.sysnsobjs Ist in jeder Datenbank vorhanden. Enthält eine Zeile für jede Namespace-bezogene Entität. Diese Tabelle wird zum Speichern von XML-Auflistungsentitäten verwendet.
sys.syscolpars Ist in jeder Datenbank vorhanden. Enthält eine Zeile für jede Spalte in einer Tabelle, Sicht oder Tabellenwertfunktion. Sie enthält auch Zeilen für jeden Parameter einer Prozedur oder einer Funktion.
sys.systypedsubobjs Ist in jeder Datenbank vorhanden. Enthält eine Zeile für jede typisierte untergeordnete Entität. Nur Parameter für Partitionsfunktionen fallen in diese Kategorie.
sys.sysidxstats Ist in jeder Datenbank vorhanden. Enthält eine Zeile für jeden Index oder Statistiken für Tabellen und indizierte Sichten

Hinweis: Jeder Index (mit Ausnahme von Heap) ist einer Statistik zugeordnet, die denselben Namen wie der Index hat.
sys.sysiscols Ist in jeder Datenbank vorhanden. Enthält eine Zeile für jeden permanenten Index und jede Statistikspalte.
sys.sysscalartypes Ist in jeder Datenbank vorhanden. Enthält eine Zeile für jeden benutzerdefinierten oder Systemtyp.
sys.sysdbreg Ist nur in der Masterdatenbank vorhanden. Enthält eine Zeile für jede registrierte Datenbank.
sys.sysxsrvs Ist nur in der Masterdatenbank vorhanden. Enthält eine Zeile für jeden lokalen, Verbindungs- oder Remoteserver.
sys.sysrmtlgns Diese Systembasistabelle ist nur in der Masterdatenbank vorhanden. Enthält eine Zeile für jede Remoteanmeldungszuordnung. Sie wird für die Zuordnung von eingehenden lokalen Anmeldungen, die vorgeben, von einem entsprechenden Server zu stammen, an eine tatsächliche lokale Anmeldung verwendet.
sys.syslnklgns Ist nur in der Masterdatenbank vorhanden. Enthält eine Zeile für jede verknüpfte Anmeldungszuordnung. Verknüpfte Anmeldungszuordnungen werden von Remoteprozeduraufrufen und verteilten Abfragen vom lokalen Server zum entsprechenden Verbindungsserver verwendet.
sys.sysxlgns Ist nur in der Masterdatenbank vorhanden. Enthält eine Zeile für jeden Serverprinzipal.
sys.sysdbfiles Ist in jeder Datenbank vorhanden. Wenn der Spaltendbid null ist, stellt die Zeile eine Datei dar, die zu dieser Datenbank gehört. In der Masterdatenbank kann die Spalte dbid sein. Wenn dies der Fall ist, steht die Zeile für eine Masterdatei.
sys.sysusermsg Ist nur in der Masterdatenbank vorhanden. Jede Zeile stellt eine benutzerdefinierte Fehlermeldung dar.
sys.sysprivs Ist in jeder Datenbank vorhanden. Enthält eine Zeile für jede Berechtigung auf Datenbank- oder Serverebene.

Hinweis: Berechtigungen auf Serverebene werden in der Masterdatenbank gespeichert.
sys.sysowners Ist in jeder Datenbank vorhanden. Jede Zeile stellt einen Datenbankprinzipal dar.
sys.sysobjkeycrypts Ist in jeder Datenbank vorhanden. Enthält eine Zeile für jeden symmetrischen Schlüssel, jede Verschlüsselung oder kryptografische Eigenschaft, die einem Objekt zugeordnet ist.
sys.syscerts Ist in jeder Datenbank vorhanden. Enthält eine Zeile für jedes Zertifikat in einer Datenbank.
sys.sysasymkeys Ist in jeder Datenbank vorhanden. Jede Zeile stellt einen asymmetrischen Schlüssel dar.
sys.ftinds Ist in jeder Datenbank vorhanden. Enthält eine Zeile für jeden Volltextindex in der Datenbank.
sys.sysxprops Ist in jeder Datenbank vorhanden. Enthält eine Zeile für jede erweiterte Eigenschaft.
sys.sysallocunits Ist in jeder Datenbank vorhanden. Enthält eine Zeile für jede Speicherzuordnungseinheit.
sys.sysrowsets Ist in jeder Datenbank vorhanden. Enthält eine Zeile für jedes Partitionsrowset für einen Index oder einen Heap.
sys.sysrowsetrefs Ist in jeder Datenbank vorhanden. Enthält eine Zeile für jeden Index eines Rowsetverweises.
sys.syslogshippers Ist nur in der Masterdatenbank vorhanden. Enthält eine Zeile für jeden Datenbankspiegelungszeugen.
sys.sysremsvcbinds Ist in jeder Datenbank vorhanden. Enthält eine Zeile für jede Remotedienstbindung.
sys.sysconvgroup Ist in jeder Datenbank vorhanden. Enthält eine Zeile für jede Dienstinstanz von Service Broker.
sys.sysxmitqueue Ist in jeder Datenbank vorhanden. Enthält eine Zeile für jede Übertragungswarteschlange von Service Broker.
sys.sysdesend Ist in jeder Datenbank vorhanden. Enthält eine Zeile für jeden sendenden Endpunkt einer Service Broker-Konversation.
sys.sysdercv Ist in jeder Datenbank vorhanden. Enthält eine Zeile für jeden empfangenden Endpunkt einer Service Broker-Konversation.
sys.sysendpts Ist nur in der Masterdatenbank vorhanden. Enthält eine Zeile für jeden im Server erstellten Endpunkt.
sys.syswebmethods Ist nur in der Masterdatenbank vorhanden. Enthält eine Zeile für jede für einen SOAP-aktivierten HTTP-Endpunkt definierte SOAP-Methode, die auf dem Server erstellt wird.
sys.sysqnames Ist in jeder Datenbank vorhanden. Enthält eine Zeile für jeden Namespace oder jeden qualifizierten Namen für ein 4-Byte-ID-Token.
sys.sysxmlcomponent Ist in jeder Datenbank vorhanden. Jede Zeile stellt eine XML-Schema-Komponente dar.
sys.sysxmlfacet Ist in jeder Datenbank vorhanden. Enthält eine Zeile für jedes XML-Facet (Beschränkung) der XML-Typdefinition.
sys.sysxmlplacement Ist in jeder Datenbank vorhanden. Enthält eine Zeile für jede XML-Platzierung für XML-Komponenten.
sys.syssingleobjrefs Ist in jeder Datenbank vorhanden. Enthält eine Zeile für jeden allgemeinen N-zu-1-Verweis.
sys.sysmultiobjrefs Ist in jeder Datenbank vorhanden. Enthält eine Zeile für jeden allgemeinen N-zu-N-Verweis.
sys.sysobjvalues Ist in jeder Datenbank vorhanden. Enthält eine Zeile für jede allgemeine Werteigenschaft einer Entität.
sys.sysguidrefs Ist in jeder Datenbank vorhanden. Enthält eine Zeile für jeden GUID-klassifizierten ID-Verweis.

Aktualisieren von Systembasistabellen

Sie können die Daten in den Systemtabellen über die Systemkatalogsichten abrufen. Um die Metadaten in einer Systembasistabelle zu aktualisieren, verwenden Sie die entsprechende Transact-SQL-Schnittstelle (z. B. DDL-Anweisungen). Systemtabellen können nicht manuell aktualisiert werden. SQL Server meldet die folgenden Meldungen, wenn Sie direkte Aktualisierungen an Systemtabellen ausführen.

Eine Systemtabelle wird manuell aktualisiert.

Msg 17659: Warnung: Die ID-ID <> der Systemtabelle wurde direkt in der Datenbank-ID <> aktualisiert, und die Cachekohärenz wurde möglicherweise nicht beibehalten. SQL Server sollte neu gestartet werden.

Beim Starten einer Datenbank mit einer manuell aktualisierten Systemtabelle

Msg 3859: Warnung: Der Systemkatalog wurde direkt in der Datenbank-ID 17 aktualisiert, zuletzt bei date_time.

Ausführen des Befehls DBCC_CHECKDB nach der manuellen Aktualisierung einer Systemtabelle

Msg 3859: Warnung: Der Systemkatalog wurde direkt in der Datenbank-ID 17 aktualisiert, zuletzt bei date_time.

Wenn Sie manuelle Aktualisierungen an einer Systemtabelle ausführen und ein Problem auftreten, werden Sie möglicherweise aufgefordert, aus einer Sicherung wiederherzustellen oder die Daten aus der betroffenen Datenbank in eine neue Datenbank zu kopieren. Weitere Informationen zu Fehlermeldungen für Benutzeraktionen.