删除用户定义函数
您可以通过使用 SQL Server Management Studio 或 Transact-SQL 删除 SQL Server 2012 中的用户定义函数。
本主题内容
开始之前:
限制和局限
安全性
若要删除用户定义函数,请使用:
SQL Server Management Studio
Transact-SQL
开始之前
限制和局限
如果数据库中存在引用此函数的 Transact-SQL 函数或视图并且这些函数或视图通过使用 SCHEMABINDING 创建,或者存在引用该函数的计算列、CHECK 约束或 DEFAULT 约束,则您将无法删除该函数。
如果存在引用此函数并且已生成索引的计算列,则您将无法删除该函数。
安全性
权限
需要具有对该函数所属架构的 ALTER 权限,或对该函数的 CONTROL 权限。
[Top]
使用 SQL Server Management Studio
删除用户定义函数
单击包含要修改的函数的数据库旁边的加号。
单击**“可编程性”**文件夹旁的加号。
单击包含要修改的函数的文件夹旁边的加号:
Table-valued Function
标量值函数
聚合函数
右键单击要删除的函数,然后选择**“删除”**。
在**“删除对象”对话框中,单击“确定”**。
重要提示 单击“删除对象”对话框中的“显示依赖关系”以打开“function_name 依赖关系”对话框。 这将显示依赖于该函数的所有对象和该函数依赖的所有对象。
[Top]
使用 Transact-SQL
删除用户定义函数
在**“对象资源管理器”**中,连接到数据库引擎实例。
在标准菜单栏上,单击**“新建查询”**。
将以下示例复制并粘贴到查询窗口中,然后单击**“执行”**。
-- 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
有关详细信息,请参阅 DROP FUNCTION (Transact-SQL)。
[Top]