Partager via


Visualisation de fonctions définies par l'utilisateur

Plusieurs procédures stockées système et affichages catalogue fournissent des informations sur les procédures stockées. Vous pouvez ainsi :

  • afficher la définition de la fonction, c'est-à-dire, les instructions Transact-SQL utilisées pour créer une fonction définie par l'utilisateur. Ceci peut être utile si vous ne disposez pas des fichiers de script Transact-SQL permettant de créer la fonction ;

  • obtenir des informations sur une fonction (par exemple son schéma, sa date de sa création et ses paramètres) ;

  • répertorier les objets utilisés par la fonction spécifiée, ainsi que les objets qui l'utilisent. Ces informations vous permettent d'identifier les fonctions affectées par la modification ou la suppression d'un objet de la base de données.

Pour afficher la définition d'une fonction définie par l'utilisateur

Pour afficher les informations concernant une fonction définie par l'utilisateur

Pour afficher les dépendances d'une fonction définie par l'utilisateur

Exemples

A. Utilisation d'affichages catalogue système pour retourner des informations sur les fonctions définies par l'utilisateur

Les exemples ci-dessous utilisent les affichages catalogue sys.objects et sys.parameters pour retourner des informations sur les fonctions définies par l'utilisateur et leurs paramètres.

-- Display metadata about the user-defined functions in AdventureWorks.
USE AdventureWorks;
GO
SELECT *
FROM sys.objects
WHERE type IN ('IF','TF','FN','FS','FT');
GO
-- Return parameters associated with the functions
SELECT o.name AS FunctionName, p.*
FROM sys.objects AS o
JOIN sys.parameters AS p ON o.object_id = p.object_ID
WHERE type IN ('IF','TF','FN','FS','FT');
GO

B. Utilisation de OBJECT_DEFINITION

L'exemple ci-dessous utilise la fonction système OBJECT_DEFINITION pour retourner la définition de la fonction définie par l'utilisateur dbo.ufnGetContactInformation.

USE AdventureWorks;
GO
SELECT OBJECT_DEFINITION(OBJECT_ID('dbo.ufnGetContactInformation'));
GO

C. Utilisation de sys.sql_expression_dependencies

L'exemple ci-dessous utilise les affichages catalogue sys.sql_expression_dependencies et sys.columns pour retourner les noms de table et de colonne dont dépend la fonction définie par l'utilisateur dbo.ufnGetContactInformation.

USE AdventureWorks;
GO
SELECT OBJECT_NAME(d.referencing_id) AS referencing_entity, 
    OBJECT_NAME(referenced_id) AS referenced_entity, 
    referenced_minor_id AS referenced_column_id,
    c.name AS referenced_column 
FROM sys.sql_expression_dependencies AS d
JOIN sys.columns AS c ON c.object_id = d.referenced_id
    AND c.column_id = d.referenced_minor_id
WHERE d.referencing_id = OBJECT_ID(N'AdventureWorks.dbo.ufnGetContactInformation');