Löschen benutzerdefinierter Funktionen
Gilt für:SQL ServerAzure SQL-Datenbank
Sie können benutzerdefinierte Funktionen in SQL Server löschen (ablegen), indem Sie SQL Server Management Studio oder Transact-SQL verwenden.
Beschränkungen und Einschränkungen
Sie können die Funktion nicht löschen, wenn Transact-SQL-Funktionen oder Ansichten 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.
Berechtigungen
Erfordert die ALTER-Berechtigung im Schema, zu der die Funktion gehört, oder die CONTROL-Berechtigung für die Funktion.
Verwenden Sie SQL Server Management Studio
Wählen Sie das Pluszeichen neben der Datenbank aus, das die Funktion enthält, die Sie ändern möchten.
Wählen Sie das Pluszeichen neben dem Ordner "Programmierbarkeit " aus.
Wählen Sie das Pluszeichen neben dem Ordner aus, der die Funktion enthält, die Sie ändern möchten:
- Table-valued Function
- Skalarwertfunktion
- Aggregatfunktion
Klicken Sie mit der rechten Maustaste auf die Funktion, die Sie löschen möchten, und klicken Sie dann auf Löschen.
Wählen Sie im Dialogfeld "Objekt löschen" "OK" aus.
Wählen Sie im Dialogfeld "Objekt löschen" die Option "Abhängigkeiten anzeigen" aus, um das Dialogfeld function_nameAbhä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.
Verwenden von Transact-SQL
Stellen Sie im Objekt-Explorer eine Verbindung mit einer Instanz des Datenbankmoduls her.
Klicken Sie in der Standardleiste auf Neue Abfrage.
Kopieren Sie das folgende Beispiel in das Abfragefenster, und klicken Sie dann auf Ausführen.
Im folgenden Codebeispiel wird eine benutzerdefinierte Funktion erstellt:
-- 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
Im folgenden Codebeispiel wird die benutzerdefinierte Funktion gelöscht, die im vorherigen Beispiel erstellt wurde.
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
Siehe auch
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für