OBJECT_DEFINITION (Transact-SQL)
Renvoie le texte source Transact-SQL de la définition de l'objet spécifié.
Syntaxe
OBJECT_DEFINITION ( object_id )
Arguments
- object_id
ID de l'objet à utiliser. object_id est de type int et est censé représenter un objet dans le contexte de la base de données active.
Type des valeurs renvoyées
nvarchar(max)
Exceptions
Retourne la valeur NULL en cas d'erreur ou si un appelant n'est pas autorisé à afficher l'objet.
Un utilisateur peut voir uniquement les métadonnées des éléments sécurisables qui lui appartiennent ou pour lesquels il dispose d'une autorisation. Cela signifie que les fonctions intégrées générant des métadonnées, telles que OBJECT_DEFINITION, peuvent retourner la valeur NULL si l'utilisateur ne dispose d'aucune autorisation sur l'objet. Pour plus d'informations, consultez Configuration de la visibilité des métadonnées et Dépannage de la visibilité des métadonnées.
Notes
Le moteur de base de données SQL Server considère que object_id se situe dans le contexte de la base de données active. Le classement de la définition de l'objet correspond toujours au contexte de la base de données d'appel.
OBJECT_DEFINITION s'applique aux types d'objets suivants :
C = Contrainte CHECK
D = Valeur par défaut (contrainte ou autonome)
P = Procédure stockée SQL
FN = Fonction scalaire SQL
R = Règle
RF = Procédure de filtre de réplication
TR = Déclencheur SQL (déclencheur DML avec une étendue de schéma ou déclencheur DDL avec une étendue de base de données ou de serveur)
IF = Fonction table en ligne SQL
TF = Fonction table SQL
V = Vue
Autorisations
Les définitions de l'objet système sont visibles publiquement. La définition des objets utilisateur est visible par le propriétaire de l'objet ou les bénéficiaires de l'une des autorisations suivantes : ALTER, CONTROL, TAKE OWNERSHIP ou VIEW DEFINITION. Ces autorisations sont implicitement possédées par des membres des rôles de base de données fixes db_owner, db_ddladmin et db_securityadmin.
Exemples
A. Renvoi le texte source d'un objet utilisé par l'utilisateur
L'exemple suivant renvoie la définition d'un déclencheur défini par l'utilisateur, uAddress, dans le schéma Person. La fonction intégrée OBJECT_ID est utilisée pour renvoyer l'identificateur d'objet du déclencheur de l'instruction OBJECT_DEFINITION.
USE AdventureWorks2008R2;
GO
SELECT OBJECT_DEFINITION (OBJECT_ID(N'Person.uAddress')) AS [Trigger Definition];
GO
B. Renvoi le texte source d'un objet système
L'exemple suivant renvoie la définition de la procédure stockée système sys.sp_columns.
USE AdventureWorks2008R2;
GO
SELECT OBJECT_DEFINITION (OBJECT_ID(N'sys.sp_columns')) AS [Object Definition];
GO