Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
SQL-databas i Microsoft Fabric
Du kan ta bort användardefinierade funktioner i SQL Server med hjälp av SQL Server Management Studio eller Transact-SQL.
Begränsningar och restriktioner
Du kommer inte att kunna ta bort funktionen om det finns Transact-SQL funktioner eller vyer i databasen som refererar till den här funktionen och har skapats med hjälp av SCHEMABINDING, eller om det finns beräknade kolumner, CHECK-begränsningar eller STANDARDbegränsningar som refererar till funktionen.
Du kan inte ta bort funktionen om det finns beräknade kolumner som refererar till den här funktionen och har indexerats.
Behörigheter
Kräver ALTER-behörighet för det schema som funktionen tillhör, eller KONTROLL-behörighet för funktionen.
Använda SQL Server Management Studio
Välj plustecknet bredvid databasen som innehåller den funktion som du vill ändra.
Välj plustecknet bredvid mappen Programmability.
Välj plustecknet bredvid mappen som innehåller den funktion som du vill ändra:
- Tabellvärdesfunktion
- Skalarvärdesfunktion
- Aggregeringsfunktion
Högerklicka på den funktion som du vill ta bort och välj Ta bort.
I dialogrutan Ta bort objekt väljer du OK.
Välj Visa beroenden i dialogrutan Ta bort objekt för att öppna dialogrutan function_nameBeroenden. Då visas alla objekt som är beroende av funktionen och alla objekt som funktionen är beroende av.
Använd Transact-SQL
I Object Exploreransluter du till en instans av databasmotorn.
I standardfältet väljer du Ny fråga.
Kopiera och klistra in följande exempel i frågefönstret och välj Kör.
Följande kodexempel skapar en användardefinierad funktion:
-- 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 ); GOFöljande kodexempel tar bort den användardefinierade funktion som skapades i föregående exempel.
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