Delete User-defined Functions
You can delete (drop) user-defined functions in SQL Server 2012 by using SQL Server Management Studio or Transact-SQL
In This Topic
Before you begin:
Limitations and Restrictions
Security
To delete a user-defined function, using:
SQL Server Management Studio
Transact-SQL
Before You Begin
Limitations and Restrictions
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.
You will not be able to delete the function if there are computed columns that reference this function and have been indexed.
Security
Permissions
Requires ALTER permission on the schema to which the function belongs, or CONTROL permission on the function.
[Top]
Using SQL Server Management Studio
To delete a user-defined function
Click on the plus sign next to the database that contains the function you wish to modify.
Click on the plus sign next to the Programmability folder.
Click the plus sign next to the folder that contains the function you wish to modify:
Table-valued Function
Scalar-valued Function
Aggregate Function
Right-click the function you want to delete and select Delete.
In the Delete Object dialog box, click OK.
Ważne: Click Show Dependencies in the Delete Object dialog box to open the function_name Dependencies dialog box. This will show all of the objects that depend on the function and all of the objects on which the function depends.
[Top]
Using Transact-SQL
To delete a user-defined function
In Object Explorer, connect to an instance of Database Engine.
On the Standard bar, click New Query.
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
For more information, see DROP FUNCTION (Transact-SQL).
[Top]