Supprimer des fonctions définies par l’utilisateur

S’applique à :SQL ServerAzure SQL Database

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

Limitations et restrictions

  • Vous ne pourrez pas supprimer la fonction s’il existe des fonctions ou des vues Transact-SQL dans la base de données qui référencent cette fonction et qui ont été créées à l’aide de SCHEMABINDING, ou s’il existe des colonnes calculées, des contraintes CHECK ou des contraintes DEFAULT qui référencent la fonction.

  • Vous ne pourrez pas supprimer la fonction s’il existe des colonnes calculées qui référencent cette fonction et qui ont été indexées.

Autorisations

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

Utiliser SQL Server Management Studio

  1. Sélectionnez le signe plus en regard de la base de données qui contient la fonction que vous souhaitez modifier.

  2. Sélectionnez le signe plus en regard du dossier Programmability .

  3. Sélectionnez le signe plus en regard du dossier qui contient la fonction que vous souhaitez modifier :

    • Table-valued Function
    • 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 , sélectionnez OK.

    Sélectionnez Afficher les dépendances dans la boîte de dialogue Supprimer l’objet pour ouvrir la boîte de dialogue function_nameDépendances. Cette opération affiche tous les objets qui dépendent de la fonction et tous les objets dont la fonction dépend.

Utiliser Transact-SQL

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

  2. Dans la barre d’outils standard, sélectionnez Nouvelle requête.

  3. Copiez et collez l’exemple suivant dans la fenêtre de requête, puis sélectionnez Exécuter.

    L’exemple de code suivant crée une fonction définie par l’utilisateur :

    -- creates function called "Sales.ufn_SalesByStore"
    USE AdventureWorks2022;
    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
    

    L’exemple de code suivant supprime la fonction définie par l’utilisateur créée dans l’exemple précédent.

    USE AdventureWorks2022;
    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
    

Voir aussi