Partager via


Tables de base système

S’applique à :SQL ServerAzure SQL Managed Instance

Les tables de base système sont des tables sous-jacentes qui stockent les métadonnées pour une base de données spécifique. La master base de données est spéciale à cet égard, car elle contient des tables supplémentaires qui ne sont trouvées dans aucune des autres bases de données. Ces tables contiennent des métadonnées persistantes dont l'étendue couvre le serveur.

Important

Les tables de base de système sont utilisées uniquement dans le moteur de base de données SQL Server et ne sont pas destinées à une utilisation générale du client. Les tables de base système sont sujettes à modification et la compatibilité n’est pas garantie.

Métadonnées de table de base système

Un bénéficiaire disposant d’une autorisation CONTROLou ALTER d’une VIEW DEFINITIONautorisation sur une base de données peut voir les métadonnées de table de base système dans l’affichage sys.objects catalogue. Le bénéficiaire peut également résoudre les noms et les ID d’objet des tables de base système à l’aide de fonctions intégrées telles que OBJECT_NAME et OBJECT_ID.

Pour établir une liaison à une table de base système, un utilisateur doit se connecter à l’instance de SQL Server à l’aide de la connexion d’administrateur dédiée (DAC). Une tentative d’exécution d’une SELECT requête à partir d’une table de base système sans connexion à l’aide de DAC génère une erreur.

Important

L’accès aux tables de base système à l’aide de DAC est conçu uniquement pour le personnel Microsoft, et ce n’est pas un scénario client pris en charge.

Tables de base système

Le tableau suivant répertorie et décrit chaque table de base système dans SQL Server.

Table de base Descriptif
sys.sysschobjs Existe dans toutes les bases de données. Chaque ligne représente un objet de la base de données.
sys.sysbinobjs Existe dans toutes les bases de données. Contient une ligne pour chaque entité de Service Broker dans la base de données. Les entités Service Broker incluent les objets suivants :

Type de message
Contrat de service
Service
Les noms et les types utilisent un classement binaire fixe.
sys.sysclsobjs Existe dans toutes les bases de données. Contient une ligne pour chaque entité classifiée qui partage les mêmes propriétés communes qui incluent les objets suivants :

Assemblée
unité de sauvegarde
Catalogue de texte intégral
Fonction de partition
Schéma de partition
Groupe de fichiers
Clé d’obfuscation
schéma
sys.sysnsobjs Existe dans toutes les bases de données. Contient une ligne pour chaque entité de l'étendue de l'espace de noms. Cette table est utilisée pour le stockage des entités de collection XML.
sys.syscolpars Existe dans toutes les bases de données. Contient une ligne pour chaque colonne de table, chaque vue ou chaque fonction table. Contient également des lignes pour chaque paramètre d'une procédure ou d'une fonction.
sys.systypedsubobjs Existe dans toutes les bases de données. Contient une ligne pour chaque sous-entité typée. Seuls les paramètres de la fonction de partition appartiennent à cette catégorie.
sys.sysidxstats Existe dans toutes les bases de données. Contient une ligne pour chaque index ou statistique pour les tables et les vues indexées

Note: Chaque index (à l’exception du tas) est associé à une statistique portant le même nom que l’index.
sys.sysiscols Existe dans toutes les bases de données. Contient une ligne pour chaque colonne d'index et de statistiques persistante.
sys.sysscalartypes Existe dans toutes les bases de données. Contient une ligne pour chaque type défini par l'utilisateur ou chaque type système.
sys.sysdbreg Existe uniquement dans la master base de données. Contient une ligne pour chaque base de données inscrite.
sys.sysxsrvs Existe uniquement dans la master base de données. Contient une ligne pour chaque serveur local, lié ou distant.
sys.sysrmtlgns Cette table de base système existe uniquement dans la master base de données. Contient une ligne pour chaque mappage d'ouverture de session distante. Cela est utilisé pour mapper les connexions entrantes issues d'un serveur correspondant et accédant à une connexion locale.
sys.syslnklgns Existe uniquement dans la master base de données. Contient une ligne pour chaque mappage de connexion liée. Les mappages de connexions liées sont utilisés par des appels de procédure distante et par des requêtes distribuées qui émanent d'un serveur local vers un serveur lié correspondant.
sys.sysxlgns Existe uniquement dans la master base de données. Contient une ligne pour chaque principal de serveur.
sys.sysdbfiles Existe dans toutes les bases de données. Si la colonne dbid est égale à zéro, la ligne représente un fichier qui appartient à cette base de données. Dans la master base de données, la colonne dbid peut être différente de zéro. Lorsque c'est le cas, la ligne représente un fichier maître.
sys.sysusermsg Existe uniquement dans la master base de données. Chaque ligne représente un message d'erreur défini par l'utilisateur.
sys.sysprivs Existe dans toutes les bases de données. Contient une ligne pour chaque autorisation de niveau base de données ou serveur.

Remarque : les autorisations au niveau du serveur sont stockées dans la master base de données.
sys.sysowners Existe dans toutes les bases de données. Chaque ligne représente un principal de base de données.
sys.sysobjkeycrypts Existe dans toutes les bases de données. Contient une ligne pour chaque clé symétrique, chaque chiffrement ou chaque propriété de chiffrement associé à un objet.
sys.syscerts Existe dans toutes les bases de données. Contient une ligne pour chaque certificat dans une base de données.
sys.sysasymkeys Existe dans toutes les bases de données. Chaque ligne représente une clé asymétrique.
sys.ftinds Existe dans toutes les bases de données. Contient une ligne pour chaque index de texte intégral dans la base de données.
sys.sysxprops Existe dans toutes les bases de données. Contient une ligne pour chaque propriété étendue.
sys.sysallocunits Existe dans toutes les bases de données. Contient une ligne pour chaque unité d'allocation de stockage.
sys.sysrowsets Existe dans toutes les bases de données. Contient une ligne pour chaque ensemble de lignes de partition pour un index ou un segment.
sys.sysrowsetrefs Existe dans toutes les bases de données. Contient une ligne pour chaque référence d'index à un ensemble de lignes.
sys.syslogshippers Existe uniquement dans la master base de données. Contient une ligne pour chaque témoin de mise en miroir de bases de données.
sys.sysremsvcbinds Existe dans toutes les bases de données. Contient une ligne pour chaque liaison de service distant.
sys.sysconvgroup Existe dans toutes les bases de données. Contient une ligne pour chaque instance de service dans Service Broker.
sys.sysxmitqueue Existe dans toutes les bases de données. Contient une ligne pour chaque file d'attente de transmission de Service Broker.
sys.sysdesend Existe dans toutes les bases de données. Contient une ligne pour chaque point de terminaison d'envoi d'une conversation Service Broker.
sys.sysdercv Existe dans toutes les bases de données. Contient une ligne pour chaque point de terminaison récepteur d'une conversation Service Broker.
sys.sysendpts Existe uniquement dans la master base de données. Contient une ligne pour chaque point de terminaison créé dans le serveur.
sys.syswebmethods Existe uniquement dans la master base de données. Contient une ligne pour chaque méthode SOAP définie sur un point de terminaison HTTP SOAP créé sur le serveur.
sys.sysqnames Existe dans toutes les bases de données. Contient une ligne pour chaque espace de noms ou chaque nom qualifié à un jeton d'ID de 4 octets.
sys.sysxmlcomponent Existe dans toutes les bases de données. Chaque ligne représente un composant de schéma XML.
sys.sysxmlfacet Existe dans toutes les bases de données. Contient une ligne pour chaque facette (restriction) XML d'une définition de type XML.
sys.sysxmlplacement Existe dans toutes les bases de données. Contient une ligne pour chaque emplacement XML pour les composants XML.
sys.syssingleobjrefs Existe dans toutes les bases de données. Contient une ligne pour chaque référence générale de N à 1.
sys.sysmultiobjrefs Existe dans toutes les bases de données. Contient une ligne pour chaque référence générale de N à N.
sys.sysobjvalues Existe dans toutes les bases de données. Contient une ligne pour chaque propriété de valeur générale d'une entité.
sys.sysguidrefs Existe dans toutes les bases de données. Contient une ligne pour chaque référence d'ID classifiée GUID.

Mettre à jour les tables de base système

Vous pouvez afficher les données des tables système à l’aide des vues du catalogue système. Pour mettre à jour les métadonnées dans une table de base système, utilisez l’interface Transact-SQL appropriée (par exemple, les instructions DDL). Vous ne pouvez pas mettre à jour manuellement les tables système. SQL Server signale les messages suivants lorsque vous effectuez des mises à jour directes vers des tables système.

Une table système est mise à jour manuellement

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.

Démarrer une base de données avec une table système mise à jour manuellement

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

Exécutez la commande DBCC_CHECKDB une fois qu’une table système est mise à jour manuellement

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

Si vous effectuez des mises à jour manuelles d’une table système et rencontrez un problème, vous serez peut-être invité à effectuer une restauration à partir d’une sauvegarde ou à copier les données de la base de données affectée vers une nouvelle base de données. Pour plus d’informations, consultez les actions des utilisateurs pour MSSQLSERVER_8992.