sys.objects (Transact-SQL)

S’applique à : point de terminaison d’analytique SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Platform System (PDW) SQL Analytics dans Microsoft Fabric Warehouse 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.

Remarque

sys.objects n’affiche pas les déclencheurs DDL, car ils ne sont pas délimités par le 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. Toutefois, un autre propriétaire peut être spécifié à l’aide de l’instruction pour modifier la ALTER AUTHORIZATION propriété.

NULL s’il n’existe aucun autre propriétaire individuel.

Indique NULL si le type d’objet est l’une des valeurs suivantes :

C = Contrainte Check
D = Valeur par défaut (contrainte ou autonome)
F = Contrainte de clé étrangère
PK = Contrainte de clé primaire
R = Règle (ancien style, autonome)
TA = Déclencheur d’assembly (CLR-integration)
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 au niveau du schéma sont toujours contenus dans le système ou INFORMATION_SCHEMA les schémas.
parent_object_id int Identificateur de l'objet auquel appartient cet objet.

0 = Pas un objet enfant.
type char(2) Type d’objet :

AF = Fonction d’agrégation (CLR)
C = Contrainte Check
D = Valeur par défaut (contrainte ou autonome)
F = Contrainte de clé étrangère
FN = fonction scalaire SQL
FS = Assembly (CLR) scalaire-function
FT = Fonction table d’assembly (CLR)
IF = Fonction table inline SQL (TVF)
IT = Table interne
P = Procédure stockée SQL
PC = Procédure stockée d’assembly (CLR)
PG = Guide du plan
PK = Contrainte de clé primaire
R = Règle (ancien style, autonome)
RF = Replication-filter-procedure
S = Table de base système
SN = Synonyme
SO = Objet Sequence
U = Table (définie par l’utilisateur)
V = Affichage

S’applique à : SQL Server 2012 (11.x) et ultérieur

SQ = File d’attente de service
TA = Déclencheur DML d’assembly (CLR)
TF = SQL table-valued-function (TVF)
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 = Arborescence des statistiques

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 à l’aide d’une ALTER instruction. 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 cette vue avec le même schéma, appelé sys.system_objects, qui affiche les objets système. Une autre vue, appelée sys.all_objects, affiche à la fois 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 est IT, et type_desc est INTERNAL_TABLE). Pour un index étendu :

  • name est le nom interne de la table d’index
  • parent_object_id est la object_id table de base
  • is_ms_shipped, is_publishedet is_schema_published les colonnes sont définies sur 0

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 détient ou pour lesquels des autorisations lui ont été accordées. Pour plus d'informations, consultez Metadata Visibility Configuration.

Exemples

R. Retourner tous les objets qui ont été modifiés au cours des 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
INNER JOIN sys.schemas AS s
    ON s.schema_id = xsc.schema_id
WHERE s.name = '<schema_name>';
GO