Systemdatenbanken

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed Instance

SQL Server enthält die folgenden Systemdatenbanken.

Systemdatenbank Beschreibung
master-Datenbank Zeichnet alle Informationen auf Systemebene für eine Instanz von SQL Server auf.
msdb-Datenbank Wird vom SQL Server-Agent verwendet, um Termine für Warnungen und Aufträge zu planen.
model-Datenbank Wird als Vorlage für alle Datenbanken verwendet, die auf der Instanz von SQL Server erstellt wurden. Änderungen, die an der model -Datenbank vorgenommen werden, z. B. an der Datenbankgröße, der -sortierung, am Wiederherstellungsmodell und an anderen Datenbankoptionen, werden auf jede Datenbank angewendet, die anschließend erstellt wird.
Ressourcendatenbank Ist eine schreibgeschützte Datenbank, die Systemobjekte enthält, die in SQL Server enthalten sind. Systemobjekte werden physisch in der Ressourcendatenbank gespeichert, logisch jedoch im sys -Schema jeder Datenbank angezeigt.
tempdb-Datenbank Ein Arbeitsbereich zum Speichern von temporären Objekten oder Zwischenresultsets.

Wichtig

Für Azure SQL-Datenbank Singletons und Pools für elastische Datenbanken gelten nur die Masterdatenbank und die tempdb-Datenbank. Weitere Informationen finden Sie unter Was ist ein Azure SQL-Datenbank-Server. Eine Erläuterung von tempdb im Kontext von Azure SQL-Datenbank finden Sie unter tempdb-Datenbank in Azure SQL-Datenbank. Für Azure SQL Managed Instance gelten alle Systemdatenbanken. Weitere Informationen zu verwalteten Instanzen in Azure SQL-Datenbank finden Sie unter Was ist eine verwaltete Instanz.

Ändern von Systemdaten

SQL Server unterstützt keine direkte Aktualisierung der Informationen in Systemobjekten wie Systemtabellen, gespeicherten Systemprozeduren und Katalogansichten. Stattdessen stellt SQL Server einen vollständigen Satz von Verwaltungstools bereit, mit denen Benutzer ihr System vollständig verwalten und alle Benutzer und Objekte in einer Datenbank verwalten können. Diese umfassen die folgenden Themen:

  • Verwaltungshilfsprogramme, z. B. SQL Server Management Studio.

  • SQL-SMO-API. Auf diese Weise können Programmierer vollständige Funktionen für die Verwaltung von SQL Server in ihren Anwendungen enthalten.

  • Transact-SQL-Skripts und gespeicherte Prozeduren. Diese können gespeicherte Systemprozeduren und Transact-SQL DDL-Anweisungen verwenden.

Diese Tools schützen Anwendungen vor Änderungen an den Systemobjekten. Beispielsweise muss SQL Server manchmal die Systemtabellen in neuen Versionen von SQL Server ändern, um neue Funktionen zu unterstützen, die in dieser Version hinzugefügt werden. Anwendungen, die SELECT-Anweisungen ausgeben, die direkt auf Systemtabellen verweisen, sind häufig auf das alte Format der Systemtabellen angewiesen. Websites können möglicherweise nicht auf eine neue Version von SQL Server aktualisieren, bis sie Anwendungen neu geschrieben haben, die aus Systemtabellen ausgewählt werden. SQL Server betrachtet die vom System gespeicherten Prozeduren, DDL und SQL-SMO veröffentlichten Schnittstellen und arbeitet daran, die Abwärtskompatibilität dieser Schnittstellen aufrechtzuerhalten.

SQL Server unterstützt in den Systemtabellen definierte Trigger nicht, da sie den Vorgang des Systems ändern können.

Hinweis

Systemdatenbanken dürfen nicht in Verzeichnissen von UNC-Freigaben enthalten sein.

Anzeigen von System-Datenbankdaten

Sie sollten keine Transact-SQL-Anweisungen codieren, die die Systemtabellen direkt abfragen, es sei denn, dies ist die einzige Möglichkeit, die von der Anwendung benötigten Informationen abzurufen. Anwendungen sollten Katalog- und Systeminformationen mithilfe der folgenden Mechanismen abrufen:

  • Systemkatalogsichten

  • SQL-SMO

  • WMI-Schnittstelle (Windows Management Instrumentation, Windows-Verwaltungsinstrumentation)

  • Katalogfunktionen, Methoden, Attribute oder Eigenschaften der in der Anwendung verwendeten Daten-API, z. B. ADO, OLE DB oder ODBC

  • Transact-SQL-System gespeicherte Prozeduren und integrierte Funktionen.