OBJECT_DEFINITION (Transact-SQL)

Renvoie le texte source Transact-SQL de la définition de l'objet spécifié.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

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 AdventureWorks;
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 AdventureWorks;
GO
SELECT OBJECT_DEFINITION (OBJECT_ID(N'sys.sp_columns')) AS [Object Definition];
GO