Delen via


Systeemdatabases

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

SQL Server bevat de volgende systeemdatabases.

Systeemdatabase Description
primaire database Registreert alle informatie op systeemniveau voor een exemplaar van SQL Server.
msdb-database Wordt gebruikt door SQL Server Agent voor het plannen van waarschuwingen en taken.
modeldatabase Wordt gebruikt als de sjabloon voor alle databases die zijn gemaakt op het exemplaar van SQL Server. Wijzigingen die zijn aangebracht in de modeldatabase , zoals databasegrootte, sortering, herstelmodel en andere databaseopties, worden later toegepast op databases die zijn gemaakt.
Bronnendatabase Is een alleen-lezen database die systeemobjecten bevat die zijn opgenomen in SQL Server. Systeemobjecten worden fysiek bewaard in de resourcedatabase , maar ze worden logisch weergegeven in het sys-schema van elke database.
tempdb-database Is een werkruimte voor het opslaan van tijdelijke objecten of tussenliggende resultatensets.

Belangrijk

Voor individuele databases en elastische pools van Azure SQL Database zijn alleen de hoofddatabase en tempdb-database van toepassing. Zie Wat is een Azure SQL Database-server voor meer informatie. Zie tempdb Database in Azure SQL Database voor een bespreking van tempdb in de context van Azure SQL Database. Voor Azure SQL Managed Instance zijn alle systeemdatabases van toepassing. Zie Wat is een beheerd exemplaar? voor meer informatie over beheerde exemplaren in Azure SQL Database

Systeemgegevens wijzigen

SQL Server biedt geen ondersteuning voor gebruikers die de informatie rechtstreeks bijwerken in systeemobjecten, zoals systeemtabellen, opgeslagen procedures en catalogusweergaven. In plaats daarvan biedt SQL Server een volledige set beheerprogramma's waarmee gebruikers hun systeem volledig kunnen beheren en alle gebruikers en objecten in een database kunnen beheren. Deze omvatten het volgende:

  • Beheerprogramma's, zoals SQL Server Management Studio.

  • SQL-SMO API. Hierdoor kunnen programmeurs volledige functionaliteit voor het beheren van SQL Server in hun toepassingen opnemen.

  • Transact-SQL scripts en opgeslagen procedures. Deze kunnen door het systeem opgeslagen procedures en Transact-SQL DDL-instructies gebruiken.

Deze hulpprogramma's beschermen toepassingen tegen wijzigingen in de systeemobjecten. SQL Server moet bijvoorbeeld soms de systeemtabellen in nieuwe versies van SQL Server wijzigen ter ondersteuning van nieuwe functionaliteit die in die versie wordt toegevoegd. Toepassingen die SELECT-instructies uitgeven die rechtstreeks verwijzen naar systeemtabellen, zijn vaak afhankelijk van de oude indeling van de systeemtabellen. Sites kunnen mogelijk geen upgrade uitvoeren naar een nieuwe versie van SQL Server totdat ze toepassingen hebben herschreven die uit systeemtabellen zijn geselecteerd. SQL Server beschouwt de door het systeem opgeslagen procedures, DDL en SQL-SMO gepubliceerde interfaces en werkt om de compatibiliteit met eerdere versies van deze interfaces te behouden.

SQL Server biedt geen ondersteuning voor triggers die zijn gedefinieerd in de systeemtabellen, omdat ze de werking van het systeem kunnen wijzigen.

Opmerking

Systeemdatabases kunnen zich niet in UNC-sharemappen bevinden.

Systeemdatabasegegevens weergeven

Codeer geen Transact-SQL instructies die rechtstreeks een query uitvoeren op de systeemtabellen, tenzij dat de enige manier is om de informatie te verkrijgen die vereist is voor de toepassing. In plaats daarvan moeten toepassingen catalogus- en systeemgegevens verkrijgen met behulp van het volgende:

  • Systeemcatalogusweergaven

  • SQL-SMO

  • Windows Management Instrumentation (WMI)-interface

  • Catalogusfuncties, methoden, kenmerken of eigenschappen van de gegevens-API die in de toepassing wordt gebruikt, zoals ADO, OLE DB of ODBC.

  • Transact-SQL systeemeigen opgeslagen procedures en ingebouwde functies.