Partager via


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 2014 en utilisant SQL Server Management Studio ou 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é

Autorisations

L’utilisation de sys.sql_expression_dependencies pour rechercher toutes les dépendances sur une fonction nécessite 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.

Utilisation de SQL Server Management Studio

Pour afficher les propriétés d’une fonction définie par l’utilisateur

  1. 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é .

  2. Cliquez sur le signe plus (+) pour développer le dossier Fonctions .

  3. 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

  4. 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.

    Sauvegarde de la 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 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.

    Identificateur 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 au schéma, consultez la section SCHEMABINDING de CREATE FUNCTION (Transact-SQL).

Utilisation de Transact-SQL

Pour obtenir la définition et les propriétés d'une fonction

  1. Dans l' Explorateur d'objets, connectez-vous à une instance du Moteur de base de données.

  2. Dans la barre d'outils standard, cliquez sur Nouvelle requête.

  3. 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

  1. Dans l' Explorateur d'objets, connectez-vous à une instance du Moteur de base de données.

  2. Dans la barre d'outils standard, cliquez sur Nouvelle requête.

  3. 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).