Affichage des fonctions définies par l'utilisateur
Plusieurs procédures stockées et affichages catalogue système fournissent des informations concernant 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 AdventureWorks2008R2.
USE AdventureWorks2008R2;
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 AdventureWorks2008R2;
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 AdventureWorks2008R2;
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'AdventureWorks2008R2.dbo.ufnGetContactInformation');
Voir aussi