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.