Partager via


Supprimer des fonctions définies par l'utilisateur

Vous pouvez supprimer des fonctions définies par l'utilisateur dans SQL Server 2012 à l'aide de SQL Server Management Studio ou de Transact-SQL.

Dans cette rubrique

  • Avant de commencer :

    Limitations et restrictions

    Sécurité

  • Pour supprimer une fonction définie par l'utilisateur, utilisez :

    SQL Server Management Studio

    Transact-SQL

Avant de commencer

Limitations et restrictions

  • Vous ne pourrez pas supprimer la fonction si la base de données contient des fonctions ou des vues Transact-SQL qui font référence à cette fonction et qui ont été créées au moyen de SCHEMABINDING. Elle échoue également s'il existe des colonnes calculées, des contraintes CHECK ou des contraintes DEFAULT qui font référence à cette fonction.

  • Vous ne pourrez pas supprimer la fonction si des colonnes calculées qui ont été indexées font référence à cette fonction.

Sécurité

Autorisations

Exige l'autorisation ALTER sur le schéma auquel la fonction appartient, ou l'autorisation CONTROL sur la fonction.

Icône de flèche utilisée avec le lien Retour en haut[Top]

Utilisation de SQL Server Management Studio

Pour supprimer une fonction définie par l'utilisateur

  1. Cliquez sur le signe plus (+° en regard de la base de données qui contient la fonction à modifier.

  2. Cliquez sur le signe plus en regard du dossier Programmabilité.

  3. Cliquez sur le signe plus en regard du dossier qui contient la fonction à modifier :

    • Fonction table

    • Fonction scalaire

    • Fonction d'agrégation

  4. Cliquez avec le bouton droit sur la fonction à supprimer, puis sélectionnez Supprimer.

  5. Dans la boîte de dialogue Supprimer l'objet, cliquez sur OK.

    Important

    Cliquez sur Afficher les dépendances dans la boîte de dialogue Supprimer un objet pour ouvrir la boîte de dialogue function_name Dépendances. Cette opération affiche tous les objets qui dépendent de la fonction et tous les objets dont la fonction dépend.

Icône de flèche utilisée avec le lien Retour en haut[Top]

Utilisation de Transact-SQL

Pour supprimer une fonction définie par l'utilisateur

  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.

    -- creates function called “Sales.ufn_SalesByStore”
    USE AdventureWorks2012;
    GO
    CREATE FUNCTION Sales.ufn_SalesByStore (@storeid int)
    RETURNS TABLE
    AS
    RETURN 
    (
        SELECT P.ProductID, P.Name, SUM(SD.LineTotal) AS 'Total'
        FROM Production.Product AS P 
        JOIN Sales.SalesOrderDetail AS SD ON SD.ProductID = P.ProductID
        JOIN Sales.SalesOrderHeader AS SH ON SH.SalesOrderID = SD.SalesOrderID
        JOIN Sales.Customer AS C ON SH.CustomerID = C.CustomerID
        WHERE C.StoreID = @storeid
        GROUP BY P.ProductID, P.Name
    );
    GO
    
    USE AdventureWorks2012;
    GO
    -- determines if function exists in database
    IF OBJECT_ID (N'Sales.fn_SalesByStore', N'IF') IS NOT NULL
    -- deletes function
        DROP FUNCTION Sales.fn_SalesByStore;
    GO
    

Pour plus d'informations, consultez DROP FUNCTION (Transact-SQL).

Icône de flèche utilisée avec le lien Retour en haut[Top]