Sdílet prostřednictvím


Systémové základní tabulky

platí pro:SQL Serverazure SQL Managed Instance

Systémové základní tabulky jsou podkladové tabulky, které ve skutečnosti ukládají metadata pro konkrétní databázi. Databáze master je v tomto ohledu zvláštní, protože obsahuje některé další tabulky, které nejsou nalezeny v žádné z ostatních databází. Tyto tabulky obsahují trvalá metadata, která mají obor pro celý server.

Důležité

Systémové základní tabulky se používají jenom v databázovém stroji SQL Serveru a nejsou určené pro obecné použití zákazníka. Základní systémové tabulky se můžou změnit a není zaručená kompatibilita.

Metadata základní tabulky systému

Příjemce, který má CONTROLALTERVIEW DEFINITION nebo oprávnění k databázi, může zobrazit metadata systémové základní tabulky v sys.objects zobrazení katalogu. Příjemce může také přeložit názvy a ID objektů systémových základních tabulek pomocí předdefinovaných funkcí, jako jsou OBJECT_NAME a OBJECT_ID.

Pokud chcete vytvořit vazbu k základní systémové tabulce, musí se uživatel připojit k instanci SQL Serveru pomocí vyhrazeného připojení správce (DAC). Při pokusu o SELECT spuštění dotazu ze základní systémové tabulky bez připojení pomocí jazyka DAC dojde k chybě.

Důležité

Přístup k systémovým základním tabulkám pomocí DAC je určený jenom pro pracovníky Microsoftu a nejedná se o podporovaný scénář zákazníka.

Systémové základní tabulky

Následující tabulka uvádí a popisuje každou základní tabulku systému v SQL Serveru.

Základní tabulka Popis
sys.sysschobjs Existuje v každé databázi. Každý řádek představuje objekt v databázi.
sys.sysbinobjs Existuje v každé databázi. Obsahuje řádek pro každou entitu Service Broker v databázi. Entity Service Broker zahrnují následující objekty:

Typ zprávy
Servisní smlouva
Služba
Názvy a typy používají binární kolaci, která je pevná.
sys.sysclsobjs Existuje v každé databázi. Obsahuje řádek pro každou klasifikovanou entitu, která sdílí stejné společné vlastnosti, které zahrnují následující objekty:

Shromáždění
Zálohovací zařízení
Fulltextový katalog
Funkce Partition
Schéma oddílů
Skupina souborů
Obfuskace klíče
Schéma
sys.sysnsobjs Existuje v každé databázi. Obsahuje řádek pro každou entitu s oborem názvů. Tato tabulka se používá k ukládání entit kolekce XML.
sys.syscolpars Existuje v každé databázi. Obsahuje řádek pro každý sloupec v tabulce, zobrazení nebo funkci s hodnotou tabulky. Obsahuje také řádky pro každý parametr procedury nebo funkce.
sys.systypedsubobjs Existuje v každé databázi. Obsahuje řádek pro každou zatypovanou podentitu. Do této kategorie spadají pouze parametry funkce oddílu.
sys.sysidxstats Existuje v každé databázi. Obsahuje řádek pro každý index nebo statistiku pro tabulky a indexovaná zobrazení.

Poznámka: Každý index (s výjimkou haldy) je spojený se statistikou, která má stejný název jako index.
sys.sysiscols Existuje v každé databázi. Obsahuje řádek pro každý trvalý index a sloupec statistiky.
sys.sysscalartypes Existuje v každé databázi. Obsahuje řádek pro každý typ uživatelem definovaný nebo systémový typ.
sys.sysdbreg Existuje pouze v master databázi. Obsahuje řádek pro každou registrovanou databázi.
sys.sysxsrvs Existuje pouze v master databázi. Obsahuje řádek pro každý místní, propojený nebo vzdálený server.
sys.sysrmtlgns Tato systémová základní tabulka existuje pouze v master databázi. Obsahuje řádek pro každé mapování vzdáleného přihlášení. Používá se k mapování příchozích přihlášení, která deklarace identity přicházejí z odpovídajícího serveru na skutečné místní přihlášení.
sys.syslnklgns Existuje pouze v master databázi. Obsahuje řádek pro každé propojené mapování přihlášení. Mapování propojených přihlášení používají vzdálená volání procedur a distribuované dotazy, které pocházejí z místního serveru na odpovídající propojený server.
sys.sysxlgns Existuje pouze v master databázi. Obsahuje řádek pro každý objekt zabezpečení serveru.
sys.sysdbfiles Existuje v každé databázi. Pokud je sloupec dbid nula, řádek představuje soubor, který patří do této databáze. master V databázi může být sloupec dbid nenulový. V takovém případě představuje řádek hlavní soubor.
sys.sysusermsg Existuje pouze v master databázi. Každý řádek představuje uživatelem definovanou chybovou zprávu.
sys.sysprivs Existuje v každé databázi. Obsahuje řádek pro každé oprávnění na úrovni databáze nebo serveru.

Poznámka: Oprávnění na úrovni serveru jsou uložena v master databázi.
sys.sysowners Existuje v každé databázi. Každý řádek představuje objekt zabezpečení databáze.
sys.sysobjkeycrypts Existuje v každé databázi. Obsahuje řádek pro každý symetrický klíč, šifrování nebo kryptografickou vlastnost přidruženou k objektu.
sys.syscerts Existuje v každé databázi. Obsahuje řádek pro každý certifikát v databázi.
sys.sysasymkeys Existuje v každé databázi. Každý řádek představuje asymetrický klíč.
sys.ftinds Existuje v každé databázi. Obsahuje řádek pro každý fulltextový index v databázi.
sys.sysxprops Existuje v každé databázi. Obsahuje řádek pro každou rozšířenou vlastnost.
sys.sysallocunits Existuje v každé databázi. Obsahuje řádek pro každou jednotku přidělení úložiště.
sys.sysrowsets Existuje v každé databázi. Obsahuje řádek pro každou sadu řádků oddílu pro index nebo haldu.
sys.sysrowsetrefs Existuje v každé databázi. Obsahuje řádek pro každý index odkazu na sadu řádků.
sys.syslogshippers Existuje pouze v master databázi. Obsahuje řádek pro každý určující zrcadlení databáze.
sys.sysremsvcbinds Existuje v každé databázi. Obsahuje řádek pro každou vazbu vzdálené služby.
sys.sysconvgroup Existuje v každé databázi. Obsahuje řádek pro každou instanci služby ve službě Service Broker.
sys.sysxmitqueue Existuje v každé databázi. Obsahuje řádek pro každou frontu přenosu služby Service Broker.
sys.sysdesend Existuje v každé databázi. Obsahuje řádek pro každý odesílaný koncový bod konverzace service brokeru.
sys.sysdercv Existuje v každé databázi. Obsahuje řádek pro každý přijímající koncový bod konverzace service brokeru.
sys.sysendpts Existuje pouze v master databázi. Obsahuje řádek pro každý koncový bod vytvořený na serveru.
sys.syswebmethods Existuje pouze v master databázi. Obsahuje řádek pro každou metodu SOAP definovanou v koncovém bodu HTTP s podporou PROTOKOLU SOAP, který je vytvořen na serveru.
sys.sysqnames Existuje v každé databázi. Obsahuje řádek pro každý obor názvů nebo kvalifikovaný název tokenu ID se 4 bajty.
sys.sysxmlcomponent Existuje v každé databázi. Každý řádek představuje komponentu schématu XML.
sys.sysxmlfacet Existuje v každé databázi. Obsahuje řádek pro každou omezující vlastnost XML (omezení) definice typu XML.
sys.sysxmlplacement Existuje v každé databázi. Obsahuje řádek pro každé umístění XML pro komponenty XML.
sys.syssingleobjrefs Existuje v každé databázi. Obsahuje řádek pro každý obecný odkaz N-to-1.
sys.sysmultiobjrefs Existuje v každé databázi. Obsahuje řádek pro každý obecný odkaz N-to-N.
sys.sysobjvalues Existuje v každé databázi. Obsahuje řádek pro každou vlastnost obecné hodnoty entity.
sys.sysguidrefs Existuje v každé databázi. Obsahuje řádek pro každý odkaz NA KLASIFIKOVANÝ IDENTIFIKÁTOR GUID.

Aktualizace systémových základních tabulek

Data v systémových tabulkách můžete zobrazit prostřednictvím zobrazení katalogu systému. Pokud chcete aktualizovat metadata v základní systémové tabulce, použijte příslušné rozhraní Transact-SQL (například příkazy DDL). Systémové tabulky nemůžete aktualizovat ručně. SQL Server hlásí následující zprávy při provádění přímých aktualizací systémových tabulek.

Systémová tabulka se aktualizuje ručně.

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.

Spuštění databáze se systémovou tabulkou, která byla ručně aktualizována

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

Po ruční aktualizaci systémové tabulky spusťte příkaz DBCC_CHECKDB.

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

Pokud provádíte ruční aktualizace systémové tabulky a narazíte na problém, můžete být požádáni o obnovení ze zálohy nebo zkopírování dat z ovlivněné databáze do nové databáze. Další informace najdete v tématu Akce uživatelů pro MSSQLSERVER_8992.