Delen via


Systeembasistabellen

Van toepassing op:SQL ServerAzure SQL Managed Instance

Systeembasistabellen zijn de onderliggende tabellen die de metagegevens voor een specifieke database daadwerkelijk opslaan. De master database is in dit opzicht speciaal omdat deze enkele extra tabellen bevat die niet in een van de andere databases worden gevonden. Deze tabellen bevatten persistente metagegevens met een serverbreed bereik.

Belangrijk

De systeembasistabellen worden alleen gebruikt in de SQL Server Database Engine en zijn niet voor algemeen gebruik door klanten. Systeembasistabellen zijn onderhevig aan wijzigingen en compatibiliteit wordt niet gegarandeerd.

Metagegevens van systeembasistabel

Een grantee met CONTROLof ALTERVIEW DEFINITION machtiging voor een database kan metagegevens van de systeembasistabel bekijken in de sys.objects catalogusweergave. De grantee kan ook de namen en object-id's van systeembasistabellen omzetten met behulp van ingebouwde functies zoals OBJECT_NAME en OBJECT_ID.

Als u verbinding wilt maken met een systeembasistabel, moet een gebruiker verbinding maken met het exemplaar van SQL Server met behulp van de toegewezen beheerdersverbinding (DAC). Als u probeert een SELECT query uit te voeren vanuit een systeembasistabel zonder verbinding te maken met DAC, treedt er een fout op.

Belangrijk

Toegang tot systeembasistabellen met behulp van DAC is alleen ontworpen voor Microsoft-personeel en is geen ondersteund klantscenario.

Systeembasistabellen

De volgende tabel bevat een overzicht en beschrijving van elke systeembasistabel in SQL Server.

Basistabel Beschrijving
sys.sysschobjs Bestaat in elke database. Elke rij vertegenwoordigt een object in de database.
sys.sysbinobjs Bestaat in elke database. Bevat een rij voor elke Service Broker-entiteit in de database. Service Broker-entiteiten bevatten de volgende objecten:

Berichttype
Servicecontract
Dienst
De namen en typen maken gebruik van binaire sortering die is opgelost.
sys.sysclsobjs Bestaat in elke database. Bevat een rij voor elke geclassificeerde entiteit die dezelfde gemeenschappelijke eigenschappen bevat die de volgende objecten bevatten:

Samenkomst
Back-upapparaat
Catalogus met volledige tekst
Partitiefunctie
Partitieschema
Bestandsgroep
Verdoezelingssleutel
Schema
sys.sysnsobjs Bestaat in elke database. Bevat een rij voor elke entiteit met naamruimtebereik. Deze tabel wordt gebruikt voor het opslaan van XML-verzamelingsentiteiten.
sys.syscolpars Bestaat in elke database. Bevat een rij voor elke kolom in een tabel-, weergave- of tabelwaardefunctie. Het bevat ook rijen voor elke parameter van een procedure of functie.
sys.systypedsubobjs Bestaat in elke database. Bevat een rij voor elke getypte subentiteit. Alleen parameters voor de partitiefunctie vallen in deze categorie.
sys.sysidxstats Bestaat in elke database. Bevat een rij voor elke index of statistieken voor tabellen en geïndexeerde weergaven

Notitie: Elke index (behalve heap) is gekoppeld aan een statistiek die dezelfde naam heeft als de index.
sys.sysiscols Bestaat in elke database. Bevat een rij voor elke persistente index- en statistiekenkolom.
sys.sysscalartypes Bestaat in elke database. Bevat een rij voor elk door de gebruiker gedefinieerd of systeemtype.
sys.sysdbreg Bestaat alleen in de master database. Bevat een rij voor elke geregistreerde database.
sys.sysxsrvs Bestaat alleen in de master database. Bevat een rij voor elke lokale, gekoppelde of externe server.
sys.sysrmtlgns Deze systeembasistabel bestaat alleen in de master database. Bevat een rij voor elke externe aanmeldingstoewijzing. Dit wordt gebruikt om binnenkomende aanmeldingen toe te wijzen die claimen dat ze afkomstig zijn van een overeenkomende server naar een werkelijke lokale aanmelding.
sys.syslnklgns Bestaat alleen in de master database. Bevat een rij voor elke gekoppelde aanmeldingstoewijzing. Gekoppelde aanmeldingstoewijzingen worden gebruikt door externe procedureaanroepen en gedistribueerde query's die afkomstig zijn van een lokale server naar een bijbehorende gekoppelde server.
sys.sysxlgns Bestaat alleen in de master database. Bevat een rij voor elke server-principal.
sys.sysdbfiles Bestaat in elke database. Als de kolom dbid nul is, vertegenwoordigt de rij een bestand dat deel uitmaakt van deze database. In de master database kan de kolom dbid niet-nul zijn. Als dit het geval is, vertegenwoordigt de rij een hoofdbestand.
sys.sysusermsg Bestaat alleen in de master database. Elke rij vertegenwoordigt een door de gebruiker gedefinieerd foutbericht.
sys.sysprivs Bestaat in elke database. Bevat een rij voor elke machtiging op database- of serverniveau.

Opmerking: machtigingen op serverniveau worden opgeslagen in de master database.
sys.sysowners Bestaat in elke database. Elke rij vertegenwoordigt een database-principal.
sys.sysobjkeycrypts Bestaat in elke database. Bevat een rij voor elke symmetrische sleutel, versleuteling of cryptografische eigenschap die is gekoppeld aan een object.
sys.syscerts Bestaat in elke database. Bevat een rij voor elk certificaat in een database.
sys.sysasymkeys Bestaat in elke database. Elke rij vertegenwoordigt een asymmetrische sleutel.
sys.ftinds Bestaat in elke database. Bevat een rij voor elke volledige-tekstindex in de database.
sys.sysxprops Bestaat in elke database. Bevat een rij voor elke uitgebreide eigenschap.
sys.sysallocunits Bestaat in elke database. Bevat een rij voor elke opslagtoewijzingseenheid.
sys.sysrowsets Bestaat in elke database. Bevat een rij voor elke partitierijset voor een index of een heap.
sys.sysrowsetrefs Bestaat in elke database. Bevat een rij voor elke index naar verwijzing naar rijset.
sys.syslogshippers Bestaat alleen in de master database. Bevat een rij voor elke databasespiegelingswitness.
sys.sysremsvcbinds Bestaat in elke database. Bevat een rij voor elke externe servicebinding.
sys.sysconvgroup Bestaat in elke database. Bevat een rij voor elk service-exemplaar in Service Broker.
sys.sysxmitqueue Bestaat in elke database. Bevat een rij voor elke Service Broker-transmissiewachtrij.
sys.sysdesend Bestaat in elke database. Bevat een rij voor elk verzendend eindpunt van een Service Broker-gesprek.
sys.sysdercv Bestaat in elke database. Bevat een rij voor elk ontvangend eindpunt van een Service Broker-gesprek.
sys.sysendpts Bestaat alleen in de master database. Bevat een rij voor elk eindpunt dat op de server is gemaakt.
sys.syswebmethods Bestaat alleen in de master database. Bevat een rij voor elke SOAP-methode die is gedefinieerd op een HTTP-eindpunt met SOAP-functionaliteit dat op de server wordt gemaakt.
sys.sysqnames Bestaat in elke database. Bevat een rij voor elke naamruimte of gekwalificeerde naam naar een token met 4 byte-id's.
sys.sysxmlcomponent Bestaat in elke database. Elke rij vertegenwoordigt een XML-schemaonderdeel.
sys.sysxmlfacet Bestaat in elke database. Bevat een rij voor elk XML-facet (beperking) van de definitie van het XML-type.
sys.sysxmlplacement Bestaat in elke database. Bevat een rij voor elke XML-plaatsing voor XML-onderdelen.
sys.syssingleobjrefs Bestaat in elke database. Bevat een rij voor elke algemene N-to-1-verwijzing.
sys.sysmultiobjrefs Bestaat in elke database. Bevat een rij voor elke algemene N-naar-N-verwijzing.
sys.sysobjvalues Bestaat in elke database. Bevat een rij voor elke algemene waarde-eigenschap van een entiteit.
sys.sysguidrefs Bestaat in elke database. Bevat een rij voor elke naslaginformatie over geclassificeerde GUID-id's.

Systeembasistabellen bijwerken

U kunt de gegevens in de systeemtabellen bekijken via de systeemcatalogusweergaven. Als u de metagegevens in een systeembasistabel wilt bijwerken, gebruikt u de juiste Transact-SQL interface (bijvoorbeeld DDL-instructies). U kunt systeemtabellen niet handmatig bijwerken. SQL Server rapporteert de volgende berichten wanneer u directe updates uitvoert voor systeemtabellen.

Een systeemtabel wordt handmatig bijgewerkt

Msg 17659: Warning: System table ID <id> has been updated directly in database ID <id> and cache coherence may not have been maintained. SQL Server should be restarted.

Een database starten met een systeemtabel die handmatig is bijgewerkt

Msg 3859: Warning: The system catalog was updated directly in database ID 17, most recently at date_time.

Voer de opdracht DBCC_CHECKDB uit nadat een systeemtabel handmatig is bijgewerkt

Msg 3859: Warning: The system catalog was updated directly in database ID 17, most recently at date_time.

Als u handmatige updates voor een systeemtabel uitvoert en een probleem ondervindt, wordt u mogelijk gevraagd om een back-up te herstellen of de gegevens uit de desbetreffende database naar een nieuwe database te kopiëren. Zie gebruikersacties voor MSSQLSERVER_8992 voor meer informatie.