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.
[Top]
Verwendung von SQL Server Management Studio
So löschen Sie eine benutzerdefinierte Funktion
Klicken Sie neben der Datenbank, die die Funktion enthält, die Sie ändern möchten, auf das Pluszeichen.
Klicken Sie neben dem Ordner Programmierbarkeit auf das Pluszeichen.
Klicken Sie neben dem Ordner, der die Funktion enthält, die Sie ändern möchten, auf das Pluszeichen:
Tabellenwertfunktion
Skalarwertfunktion
Aggregatfunktion
Klicken Sie mit der rechten Maustaste auf die Funktion, den Sie löschen möchten, und klicken Sie dann auf Löschen.
Klicken Sie im Dialogfeld Objekt löschen auf OK.
Wichtig 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.
[Top]
Verwendung von Transact-SQL
So löschen Sie eine benutzerdefinierte Funktion
Stellen Sie im Objekt-Explorer eine Verbindung zu einer Instanz von Database Engine (Datenbankmodul) her.
Klicken Sie in der Standardleiste auf Neue Abfrage.
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).
[Top]