Löschen von benutzerdefinierten FunktionenDelete User-defined Functions

Anwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions) JaAzure SQL-DatenbankAzure SQL DatabaseYesAzure SQL-DatenbankAzure SQL DatabaseAnwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions) JaAzure SQL-DatenbankAzure SQL DatabaseYesAzure SQL-DatenbankAzure SQL Database

Sie können benutzerdefinierte Funktionen in SQL Server 2019 (15.x)SQL Server 2019 (15.x) löschen mit SQL Server Management StudioSQL Server Management Studio oder Transact-SQLTransact-SQLYou can delete (drop) user-defined functions in SQL Server 2019 (15.x)SQL Server 2019 (15.x) by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL

In diesem ThemaIn This Topic

VorbereitungenBefore You Begin

EinschränkungenLimitations and Restrictions

  • Sie können die Funktion nicht löschen, wenn Transact-SQL-Funktionen oder -Sichten in der Datenbank vorhanden sind, die auf diese Funktion verweisen und mithilfe von SCHEMABINDING erstellt wurden, oder wenn berechnete Spalten, CHECK-Einschränkungen oder DEFAULT-Einschränkungen vorhanden sind, die auf die Funktion verweisen.You will not be able to delete the function if there are Transact-SQL functions or views in the database that reference this function and were created by using SCHEMABINDING, or if there are computed columns, CHECK constraints, or DEFAULT constraints that reference the function.

  • Sie können die Funktion nicht löschen, wenn berechnete Spalten vorhanden sind, die auf diese Funktion verweisen und indiziert wurden.You will not be able to delete the function if there are computed columns that reference this function and have been indexed.

SicherheitSecurity

BerechtigungenPermissions

Erfordert die ALTER-Berechtigung im Schema, zu der die Funktion gehört, oder die CONTROL-Berechtigung für die Funktion.Requires ALTER permission on the schema to which the function belongs, or CONTROL permission on the function.

Verwenden von SQL Server Management StudioUsing SQL Server Management Studio

So löschen Sie eine benutzerdefinierte FunktionTo delete a user-defined function

  1. Klicken Sie neben der Datenbank, die die Funktion enthält, die Sie ändern möchten, auf das Pluszeichen.Click on the plus sign next to the database that contains the function you wish to modify.

  2. Klicken Sie neben dem Ordner Programmierbarkeit auf das Pluszeichen.Click on the plus sign next to the Programmability folder.

  3. Klicken Sie neben dem Ordner, der die Funktion enthält, die Sie ändern möchten, auf das Pluszeichen:Click the plus sign next to the folder that contains the function you wish to modify:

    • Table-valued FunctionTable-valued Function

    • SkalarwertfunktionScalar-valued Function

    • AggregatfunktionAggregate Function

  4. Klicken Sie mit der rechten Maustaste auf die Funktion, die Sie löschen möchten, und klicken Sie dann auf Löschen.Right-click the function you want to delete and select Delete.

  5. Klicken Sie im Dialogfeld Objekt löschen auf OK.In the Delete Object dialog box, click OK.

    Wichtig

    Klicken Sie im Dialogfeld Objekt löschen auf Abhängigkeiten anzeigen, um das Dialogfeld Name_Funktion-Abhängigkeiten zu öffnen.Click Show Dependencies in the Delete Object dialog box to open the function_nameDependencies dialog box. Es werden alle Objekte angezeigt, die von der Funktion abhängig sind, und alle Objekte, von denen die Funktion abhängig ist.This will show all of the objects that depend on the function and all of the objects on which the function depends.

Verwenden von Transact-SQLUsing Transact-SQL

So löschen Sie eine benutzerdefinierte FunktionTo delete a user-defined function

  1. Stellen Sie im Objekt-Explorer eine Verbindung mit einer Datenbank-EngineDatabase Engine-Instanz her.In Object Explorer, connect to an instance of Datenbank-EngineDatabase Engine.

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.On the Standard bar, click New Query.

  3. Kopieren Sie das folgende Beispiel, fügen Sie es in das Abfragefenster ein, und klicken Sie auf Ausführen.Copy and paste the following example into the query window and click Execute.

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

Weitere Informationen finden Sie unter DROP FUNCTION (Transact-SQL).For more information, see DROP FUNCTION (Transact-SQL).