Freigeben über


Löschen von benutzerdefinierten Funktionen

Sie können benutzerdefinierte Funktionen in SQL Server 2012 mit SQL Server Management Studio oder Transact-SQL löschen.

In diesem Thema

  • Vorbereitungen:

    Einschränkungen

    Sicherheit

  • So löschen Sie eine benutzerdefinierte Funktion mit:

    SQL Server Management Studio

    Transact-SQL

Vorbereitungen

Einschränkungen

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

  • Sie können die Funktion nicht löschen, wenn berechnete Spalten vorhanden sind, die auf diese Funktion verweisen und indiziert wurden.

Sicherheit

Berechtigungen

Erfordert die ALTER-Berechtigung im Schema, zu der die Funktion gehört, oder die CONTROL-Berechtigung für die Funktion.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Verwendung von SQL Server Management Studio

So löschen Sie eine benutzerdefinierte Funktion

  1. Klicken Sie neben der Datenbank, die die Funktion enthält, die Sie ändern möchten, auf das Pluszeichen.

  2. Klicken Sie neben dem Ordner Programmierbarkeit auf das Pluszeichen.

  3. Klicken Sie neben dem Ordner, der die Funktion enthält, die Sie ändern möchten, auf das Pluszeichen:

    • Tabellenwertfunktion

    • Skalarwertfunktion

    • Aggregatfunktion

  4. Klicken Sie mit der rechten Maustaste auf die Funktion, den Sie löschen möchten, und klicken Sie dann auf Löschen.

  5. Klicken Sie im Dialogfeld Objekt löschen auf OK.

    Wichtiger HinweisWichtig

    Klicken Sie im Dialogfeld Objekt löschen auf Abhängigkeiten anzeigen, um das Dialogfeld function_name-Abhängigkeiten zu öffnen. Es werden alle Objekte angezeigt, die von der Funktion abhängig sind, und alle Objekte, von denen die Funktion abhängig ist.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Verwendung von Transact-SQL

So löschen Sie eine benutzerdefinierte Funktion

  1. Stellen Sie im Objekt-Explorer eine Verbindung zu einer Instanz von Database Engine (Datenbankmodul) her.

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.

  3. Kopieren Sie das folgende Beispiel, fügen Sie es in das Abfragefenster ein, und klicken Sie auf Ausführen.

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

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]