OBJECT_DEFINITION (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

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

Conventions de la syntaxe Transact-SQL

Syntaxe

OBJECT_DEFINITION ( object_id )  

Remarque

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 (12.x) et versions antérieures, consultez la Documentation sur les versions antérieures.

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.

Types de retour

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 Metadata Visibility Configuration.

Remarques

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_ddladminet db_securityadmin .

Exemples

R. Renvoi du texte source d'un objet défini 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 AdventureWorks2022;  
GO  
SELECT OBJECT_DEFINITION (OBJECT_ID(N'Person.uAddress')) AS [Trigger Definition];   
GO  

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

Voir aussi

Fonctions de métadonnées (Transact-SQL)
OBJECT_NAME (Transact-SQL)
OBJECT_ID (Transact-SQL)
sp_helptext (Transact-SQL)
sys.sql_modules (Transact-SQL)
sys.server_sql_modules (Transact-SQL)