sys.objects (Transact-SQL)
S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Point de terminaison analytique SQL dans Microsoft FabricEntrepôt dans Microsoft Fabric
Contient une ligne pour chaque objet défini par l’utilisateur avec étendue dans une base de données, y compris les fonctions scalaires définies par l’utilisateur compilées en mode natif.
Pour plus d’informations, consultez Fonctions scalaires définies par l’utilisateur pour l’OLTP en mémoire.
Notes
sys.objects
n'affiche pas les déclencheurs DDL car ceux-ci ne sont pas définis avec une étendue de schéma. Tous les déclencheurs, DML et DDL, se trouvent dans sys.triggers. sys.triggers
prend en charge un ensemble de règles définissant l'étendue des noms pour les différents types de déclencheurs.
Nom de la colonne | Type de données | Description |
---|---|---|
name | sysname | Nom d’objet |
object_id | int | Numéro d'identification de l'objet. Unique dans une base de données. |
principal_id | int | ID du propriétaire, si celui-ci est différent du propriétaire du schéma. Par défaut, le propriétaire du schéma détient les objets contenus dans le schéma. Cependant, il est possible de spécifier un autre propriétaire à l'aide de l'instruction ALTER AUTHORIZATION qui permet de changer de propriétaire. Prend la valeur NULL en l'absence d'un autre propriétaire. Prend la valeur NULL si le type de l'objet est un des types suivants : C = Contrainte CHECK D = DEFAULT (contrainte ou autonome) F = Contrainte FOREIGN KEY PK = Contrainte PRIMARY KEY R = Règle (ancienne, autonome) TA = Déclencheur d'assembly (intégration CLR) TR = Déclencheur SQL UQ = Contrainte UNIQUE EC = Contrainte Edge |
schema_id | int | ID du schéma dans lequel se trouve l'objet. Les objets système compris dans l'étendue du schéma sont toujours contenus dans les schémas sys ou INFORMATION_SCHEMA. |
parent_object_id | int | Identificateur de l'objet auquel appartient cet objet. 0 = Il ne s'agit pas d'un objet enfant. |
type | char(2) | Type d’objet : AF = Fonction d'agrégation (CLR) C = Contrainte CHECK D = DEFAULT (contrainte ou autonome) F = Contrainte FOREIGN KEY FN = Fonction scalaire SQL FS = Fonction scalaire d'assembly (CLR) FT = Fonction table d'assembly (CLR) IF = Fonction table en ligne SQL IT = Table interne P = Procédure stockée SQL PC = Procédure stockée d’assembly (CLR) PG = Repère de plan PK = Contrainte PRIMARY KEY R = Règle (ancienne, autonome) RF = Procédure de filtre de réplication S = Table de base système SN = Synonyme SO = Objet séquence U = Table (définie par l'utilisateur) V = Vue S’applique à : SQL Server 2012 (11.x) et versions ultérieures. SQ = File d'attente du service TA = Déclencheur d'assembly DML (CLR) TF = Fonction table SQL TR = Déclencheur DML SQL TT = Type de table UQ = Contrainte UNIQUE X = Procédure stockée étendue S’applique à : SQL Server 2014 (12.x) et versions ultérieures, Azure SQL Database, Azure Synapse Analytics, Analytics Platform System (PDW). ST = STATS_TREE S’applique à : SQL Server 2016 (13.x) et versions ultérieures, Azure SQL Database, Azure Synapse Analytics, Analytics Platform System (PDW). ET = Table externe S’applique à : SQL Server 2017 (14.x) et versions ultérieures, Azure SQL Database, Azure Synapse Analytics, Analytics Platform System (PDW). EC = Contrainte Edge |
type_desc | nvarchar(60) | Description du type d'objet : AGGREGATE_FUNCTION CHECK_CONSTRAINT CLR_SCALAR_FUNCTION CLR_STORED_PROCEDURE CLR_TABLE_VALUED_FUNCTION CLR_TRIGGER DEFAULT_CONSTRAINT EDGE_CONSTRAINT EXTENDED_STORED_PROCEDURE FOREIGN_KEY_CONSTRAINT INTERNAL_TABLE PLAN_GUIDE PRIMARY_KEY_CONSTRAINT REPLICATION_FILTER_PROCEDURE RULE SEQUENCE_OBJECT SERVICE_QUEUE SQL_INLINE_TABLE_VALUED_FUNCTION SQL_SCALAR_FUNCTION SQL_STORED_PROCEDURE SQL_TABLE_VALUED_FUNCTION SQL_TRIGGER SYNONYM SYSTEM_TABLE TYPE_TABLE UNIQUE_CONSTRAINT USER_TABLE VIEW |
create_date | datetime | Date de création de l'objet. |
modify_date | datetime | Date de la dernière modification de l'objet avec l'instruction ALTER. Si l’objet est une table ou une vue, modify_date change également lorsqu’un index sur la table ou la vue est créé ou modifié. |
is_ms_shipped | bit | Un composant SQL Server interne a créé l’objet. |
is_published | bit | L'objet est publié. |
is_schema_published | bit | Seul le schéma de l'objet est publié. |
Notes
Vous pouvez appliquer les fonctions intégrées OBJECT_ID, OBJECT_NAME et OBJECTPROPERTY() aux objets affichés dans sys.objects
.
Il existe une version de cet affichage avec le même schéma, appelé sys.system_objects, qui affiche les objets système. Un autre affichage, appelé sys.all_objects, affiche les objets système et utilisateur. Ces trois affichages catalogue ont la même structure.
Dans cette version de SQL Server, un index étendu, tel qu’un index XML ou un index spatial, est considéré comme une table interne dans sys.objects
(type = IT et type_desc = INTERNAL_TABLE). Pour un index étendu :
name
correspond au nom interne de la table d'index.parent_object_id
est l’object_id
de la table de base.Les colonnes
is_ms_shipped
,is_published
etis_schema_published
sont définies sur0
.
Affichages système utiles associés
Les sous-ensembles des objets peuvent être consultés à l’aide de vues système pour un type spécifique d’objet, par exemple :
Autorisations
La visibilité des métadonnées dans les affichages catalogue est limitée aux éléments sécurisables qu’un utilisateur possède ou sur lesquels l’utilisateur a reçu une autorisation. Pour plus d'informations, consultez Metadata Visibility Configuration.
Exemples
R. Retour de tous les objets modifiés au cours des N derniers jours
Avant d'exécuter la requête suivante, remplacez <database_name>
et <n_days>
par des valeurs valides.
USE <database_name>;
GO
SELECT name AS object_name
,SCHEMA_NAME(schema_id) AS schema_name
,type_desc
,create_date
,modify_date
FROM sys.objects
WHERE modify_date > GETDATE() - <n_days>
ORDER BY modify_date;
GO
B. Retour des paramètres d’une fonction ou d’une procédure stockée spécifique
Avant d'exécuter la requête suivante, remplacez <database_name>
et <schema_name.object_name>
par des noms valides.
USE <database_name>;
GO
SELECT SCHEMA_NAME(schema_id) AS schema_name
,o.name AS object_name
,o.type_desc
,p.parameter_id
,p.name AS parameter_name
,TYPE_NAME(p.user_type_id) AS parameter_type
,p.max_length
,p.precision
,p.scale
,p.is_output
FROM sys.objects AS o
INNER JOIN sys.parameters AS p ON o.object_id = p.object_id
WHERE o.object_id = OBJECT_ID('<schema_name.object_name>')
ORDER BY schema_name, object_name, p.parameter_id;
GO
C. Retour de toutes les fonctions définies par l’utilisateur dans une base de données
Avant d'exécuter la requête suivante, remplacez <database_name>
par un nom de base de données valide.
USE <database_name>;
GO
SELECT name AS function_name
,SCHEMA_NAME(schema_id) AS schema_name
,type_desc
,create_date
,modify_date
FROM sys.objects
WHERE type_desc LIKE '%FUNCTION%';
GO
D. Retour du propriétaire de chaque objet dans un schéma
Avant d'exécuter la requête suivante, remplacez toutes les occurrences de <database_name>
et <schema_name>
par des noms valides.
USE <database_name>;
GO
SELECT 'OBJECT' AS entity_type
,USER_NAME(OBJECTPROPERTY(object_id, 'OwnerId')) AS owner_name
,name
FROM sys.objects WHERE SCHEMA_NAME(schema_id) = '<schema_name>'
UNION
SELECT 'TYPE' AS entity_type
,USER_NAME(TYPEPROPERTY(SCHEMA_NAME(schema_id) + '.' + name, 'OwnerId')) AS owner_name
,name
FROM sys.types WHERE SCHEMA_NAME(schema_id) = '<schema_name>'
UNION
SELECT 'XML SCHEMA COLLECTION' AS entity_type
,COALESCE(USER_NAME(xsc.principal_id),USER_NAME(s.principal_id)) AS owner_name
,xsc.name
FROM sys.xml_schema_collections AS xsc JOIN sys.schemas AS s
ON s.schema_id = xsc.schema_id
WHERE s.name = '<schema_name>';
GO
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : tout au long de 2024, nous allons éliminer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d'informations, consultez :Envoyer et afficher des commentaires pour