Afficher les fonctions définies par l'utilisateur
Vous pouvez obtenir des informations sur la définition ou les propriétés d'une fonction définie par l'utilisateur dans SQL Server 2012 à l'aide de SQL Server Management Studio ou de Transact-SQL. Vous devrez peut-être examiner la définition de la fonction pour comprendre comment les données de celle-ci sont issues des tables source ou pour connaître les données définies par la fonction.
Important
Si vous modifiez le nom d'un objet auquel une fonction fait référence, vous devez modifier la fonction pour que son texte reflète le nouveau nom de l'objet. Par conséquent, avant de renommer un objet, affichez les dépendances de l'objet pour savoir si des fonctions peuvent être concernées par la modification projetée.
Dans cette rubrique
Avant de commencer :
Sécurité
Pour obtenir des informations sur une fonction, utilisez :
SQL Server Management Studio
Transact-SQL
Avant de commencer
Sécurité
Autorisations
L'utilisation de sys.sql_expression_dependencies pour rechercher toutes les dépendances sur une fonction requiert l'autorisation VIEW DEFINITION sur la base de données et l'autorisation SELECT sur sys.sql_expression_dependencies pour la base de données. Les définitions d'objets système, telles que celles retournées dans OBJECT_DEFINITION, sont visibles publiquement.
[Top]
Utilisation de SQL Server Management Studio
Pour afficher les propriétés d'une fonction définies par l'utilisateur
Dans l'Explorateur d'objets, cliquez sur le signe plus (+) en regard de la base de données qui contient la fonction dont vous souhaitez afficher les propriétés, puis cliquez sur le signe plus (+) pour développer le dossier Programmabilité.
Cliquez sur le signe plus (+) pour développer le dossier Fonctions.
Cliquez sur le signe plus (+) pour développer le dossier qui contient la fonction dont vous souhaitez afficher les propriétés :
Fonction table
Fonction scalaire
Fonction d'agrégation
Cliquez avec le bouton droit sur la fonction dont vous voulez afficher les propriétés, puis sélectionnez Propriétés.
Les propriétés suivantes s'affichent dans la boîte de dialogue Propriétés de la fonction – function_name.
Base de données
Nom de la base de données contenant cette fonction.Serveur
Nom de l'instance actuelle du serveur.Utilisateur
Nom de l'utilisateur de cette connexion.Date de création
Affiche la date à laquelle la fonction a été créée.Exécuter en tant que
Contexte d'exécution de la fonction.Nom
Nom de la fonction actuelle.Schéma
Affiche le schéma auquel appartient la fonction.Objet système
Indique si la fonction est un objet système. Les valeurs possibles sont True et False.Valeurs ANSI NULL
Indique si l'objet a été créé avec l'option Valeurs ANSI NULL.Chiffré
Indique si la fonction est chiffrée. Les valeurs sont True et False.Type de fonction
Type de la fonction définie par l'utilisateur.Identificateurs entre guillemets
Indique si l'objet a été créé avec l'option Identificateurs entre guillemets.Lié(e) au schéma
Indique si la fonction est liée au schéma. Les valeurs sont True et False. Pour plus d'informations sur les fonctions liées à un schéma, consultez la section SCHEMABINDING de CREATE FUNCTION (Transact-SQL).
[Top]
Utilisation de Transact-SQL
Pour obtenir la définition et les propriétés d'une fonction
Dans l'Explorateur d'objets, connectez-vous à une instance du Moteur de base de données.
Dans la barre d'outils standard, cliquez sur Nouvelle requête.
Copiez et collez l'un des exemples suivants dans la fenêtre de requête, puis cliquez sur Exécuter.
USE AdventureWorks2012; GO -- Get the function name, definition, and relevant properties SELECT sm.object_id, OBJECT_NAME(sm.object_id) AS object_name, o.type, o.type_desc, sm.definition, sm.uses_ansi_nulls, sm.uses_quoted_identifier, sm.is_schema_bound, sm.execute_as_principal_id -- using the two system tables sys.sql_modules and sys.objects FROM sys.sql_modules AS sm JOIN sys.objects AS o ON sm.object_id = o.object_id -- from the function 'dbo.ufnGetProductDealerPrice' WHERE sm.object_id = OBJECT_ID('dbo.ufnGetProductDealerPrice') ORDER BY o.type; GO USE AdventureWorks2012; GO -- Get the definition of the function dbo.ufnGetProductDealerPrice SELECT OBJECT_DEFINITION (OBJECT_ID('dbo.ufnGetProductDealerPrice')) AS ObjectDefinition; GO
Pour plus d'informations, consultez sys.sql_modules (Transact-SQL) et OBJECT_DEFINITION (Transact-SQL).
Pour obtenir les dépendances d'une fonction
Dans l'Explorateur d'objets, connectez-vous à une instance du Moteur de base de données.
Dans la barre d'outils standard, cliquez sur Nouvelle requête.
Copiez et collez l'exemple suivant dans la fenêtre de requête, puis cliquez sur Exécuter.
USE AdventureWorks2012; GO -- Get all of the dependency information SELECT OBJECT_NAME(sed.referencing_id) AS referencing_entity_name, o.type_desc AS referencing_desciption, COALESCE(COL_NAME(sed.referencing_id, sed.referencing_minor_id), '(n/a)') AS referencing_minor_id, sed.referencing_class_desc, sed.referenced_class_desc, sed.referenced_server_name, sed.referenced_database_name, sed.referenced_schema_name, sed.referenced_entity_name, COALESCE(COL_NAME(sed.referenced_id, sed.referenced_minor_id), '(n/a)') AS referenced_column_name, sed.is_caller_dependent, sed.is_ambiguous -- from the two system tables sys.sql_expression_dependencies and sys.object FROM sys.sql_expression_dependencies AS sed INNER JOIN sys.objects AS o ON sed.referencing_id = o.object_id -- on the function dbo.ufnGetProductDealerPrice WHERE sed.referencing_id = OBJECT_ID('dbo.ufnGetProductDealerPrice'); GO
Pour plus d'informations, consultez sys.sql_expression_dependencies (Transact-SQL) et sys.objects (Transact-SQL).
[Top]