Dela via


Systembastabeller

gäller för:SQL ServerAzure SQL Managed Instance

Systembastabeller är de underliggande tabeller som faktiskt lagrar metadata för en specifik databas. Databasen master är speciell i det här avseendet eftersom den innehåller några ytterligare tabeller som inte finns i någon av de andra databaserna. Dessa tabeller innehåller beständiga metadata som har ett serveromfattande omfång.

Viktigt!

Systembastabellerna används endast i SQL Server Database Engine och är inte för allmän kundanvändning. Systembastabeller kan komma att ändras och kompatibiliteten garanteras inte.

Metadata för systembastabell

En beviljad som har CONTROL, ALTEReller VIEW DEFINITION behörighet för en databas kan se metadata för systembastabellen sys.objects i katalogvyn. Beviljare kan också matcha namn och objekt-ID för systembastabeller med hjälp av inbyggda funktioner som OBJECT_NAME och OBJECT_ID.

Om du vill binda till en systembastabell måste en användare ansluta till SQL Server-instansen med hjälp av den dedikerade administratörsanslutningen (DAC). Ett fel uppstår när du försöker köra en SELECT fråga från en systembastabell utan att ansluta med hjälp av DAC.

Viktigt!

Åtkomst till systembastabeller med hjälp av DAC är endast avsedd för Microsoft-personal och det är inte ett kundscenario som stöds.

Systembastabeller

I följande tabell visas och beskrivs varje systembastabell i SQL Server.

Bastabell Beskrivning
sys.sysschobjs Finns i varje databas. Varje rad representerar ett objekt i databasen.
sys.sysbinobjs Finns i varje databas. Innehåller en rad för varje Service Broker-entitet i databasen. Service Broker-entiteter innehåller följande objekt:

Meddelandetyp
Servicekontrakt
Tjänster
Namnen och typerna använder binär sortering som är fast.
sys.sysclsobjs Finns i varje databas. Innehåller en rad för varje klassificerad entitet som delar samma gemensamma egenskaper som innehåller följande objekt:

Sammansättning
Säkerhetskopieringsenhet
Fulltextkatalog
Partitionsfunktion
Partitionsschema
Filgrupp
Fördunklingsnyckel
Schemat
sys.sysnsobjs Finns i varje databas. Innehåller en rad för varje namnområdesomfångsentitet. Den här tabellen används för att lagra XML-samlingsentiteter.
sys.syscolpars Finns i varje databas. Innehåller en rad för varje kolumn i en tabell, vy eller tabellvärdesfunktion. Den innehåller också rader för varje parameter i en procedur eller funktion.
sys.systypedsubobjs Finns i varje databas. Innehåller en rad för varje typ av underdel. Endast parametrar för partitionsfunktionen tillhör den här kategorin.
sys.sysidxstats Finns i varje databas. Innehåller en rad för varje index eller statistik för tabeller och indexerade vyer

Not: Varje index (utom heap) är associerat med en statistik som har samma namn som indexet.
sys.sysiscols Finns i varje databas. Innehåller en rad för varje bevarad index- och statistikkolumn.
sys.sysscalartypes Finns i varje databas. Innehåller en rad för varje användardefinierad eller systemtyp.
sys.sysdbreg Finns endast i master databasen. Innehåller en rad för varje registrerad databas.
sys.sysxsrvs Finns endast i master databasen. Innehåller en rad för varje lokal, länkad eller fjärransluten server.
sys.sysrmtlgns Den här systembastabellen master finns endast i databasen. Innehåller en rad för varje fjärrinloggningsmappning. Detta används för att mappa inkommande inloggningar som påstår sig komma från en motsvarande server till en faktisk lokal inloggning.
sys.syslnklgns Finns endast i master databasen. Innehåller en rad för varje länkad inloggningsmappning. Länkade inloggningsmappningar används av fjärrproceduranrop och distribuerade frågor som kommer från en lokal server ut till en motsvarande länkad server.
sys.sysxlgns Finns endast i master databasen. Innehåller en rad för varje serverhuvudnamn.
sys.sysdbfiles Finns i varje databas. Om kolumnen dbid är noll representerar raden en fil som tillhör den här databasen. master I databasen kan kolumnen dbid vara icke-zero. När så är fallet representerar raden en huvudfil.
sys.sysusermsg Finns endast i master databasen. Varje rad representerar ett användardefinierat felmeddelande.
sys.sysprivs Finns i varje databas. Innehåller en rad för varje databas- eller servernivåbehörighet.

Obs! Behörigheter på servernivå lagras i master databasen.
sys.sysowners Finns i varje databas. Varje rad representerar ett huvudnamn för databasen.
sys.sysobjkeycrypts Finns i varje databas. Innehåller en rad för varje symmetrisk nyckel, kryptering eller kryptografisk egenskap som är associerad med ett objekt.
sys.syscerts Finns i varje databas. Innehåller en rad för varje certifikat i en databas.
sys.sysasymkeys Finns i varje databas. Varje rad representerar en asymmetrisk nyckel.
sys.ftinds Finns i varje databas. Innehåller en rad för varje fulltextindex i databasen.
sys.sysxprops Finns i varje databas. Innehåller en rad för varje utökad egenskap.
sys.sysallocunits Finns i varje databas. Innehåller en rad för varje lagringsallokeringsenhet.
sys.sysrowsets Finns i varje databas. Innehåller en rad för varje partitionsraduppsättning för ett index eller en heap.
sys.sysrowsetrefs Finns i varje databas. Innehåller en rad för varje index till raduppsättningsreferens.
sys.syslogshippers Finns endast i master databasen. Innehåller en rad för varje databasspeglingsvittne.
sys.sysremsvcbinds Finns i varje databas. Innehåller en rad för varje fjärrtjänstbindning.
sys.sysconvgroup Finns i varje databas. Innehåller en rad för varje tjänstinstans i Service Broker.
sys.sysxmitqueue Finns i varje databas. Innehåller en rad för varje Service Broker-överföringskö.
sys.sysdesend Finns i varje databas. Innehåller en rad för varje sändningsslutpunkt för en Service Broker-konversation.
sys.sysdercv Finns i varje databas. Innehåller en rad för varje mottagande slutpunkt för en Service Broker-konversation.
sys.sysendpts Finns endast i master databasen. Innehåller en rad för varje slutpunkt som skapas på servern.
sys.syswebmethods Finns endast i master databasen. Innehåller en rad för varje SOAP-metod som definierats på en SOAP-aktiverad HTTP-slutpunkt som skapas på servern.
sys.sysqnames Finns i varje databas. Innehåller en rad för varje namnområde eller kvalificerat namn till en ID-token på 4 byte.
sys.sysxmlcomponent Finns i varje databas. Varje rad representerar en XML-schemakomponent.
sys.sysxmlfacet Finns i varje databas. Innehåller en rad för varje XML-fasett (begränsning) av XML-typdefinitionen.
sys.sysxmlplacement Finns i varje databas. Innehåller en rad för varje XML-placering för XML-komponenter.
sys.syssingleobjrefs Finns i varje databas. Innehåller en rad för varje allmän N-till-1-referens.
sys.sysmultiobjrefs Finns i varje databas. Innehåller en rad för varje allmän N-till-N-referens.
sys.sysobjvalues Finns i varje databas. Innehåller en rad för varje egenskap för generellt värde för en entitet.
sys.sysguidrefs Finns i varje databas. Innehåller en rad för varje GUID-klassificerad ID-referens.

Uppdatera systembastabeller

Du kan visa data i systemtabellerna via systemkatalogvyerna. Om du vill uppdatera metadata i en systembastabell använder du lämpligt Transact-SQL gränssnitt (till exempel DDL-instruktioner). Du kan inte uppdatera systemtabeller manuellt. SQL Server rapporterar följande meddelanden när du utför direkta uppdateringar av systemtabeller.

En systemtabell uppdateras manuellt

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.

Starta en databas med en systemtabell som uppdaterades manuellt

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

Kör kommandot DBCC_CHECKDB när en systemtabell har uppdaterats manuellt

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

Om du utför manuella uppdateringar av en systemtabell och stöter på ett problem kan du bli ombedd att återställa från en säkerhetskopia eller kopiera ut data från den berörda databasen till en ny databas. Mer information finns i Användaråtgärder för MSSQLSERVER_8992.