DROP FUNCTION (Transact-SQL)

适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics 分析平台系统 (PDW) Microsoft Fabric 中的 SQL 分析端点 Microsoft Fabric 中的仓库

从当前数据库中删除一个或多个用户定义函数。 用户定义函数使用 CREATE FUNCTION 创建,使用 ALTER FUNCTION 修改。

DROP 函数支持本机编译的标量用户定义函数。 有关详细信息,请参阅内存中 OLTP 的标量用户定义函数

Transact-SQL 语法约定

语法

 -- SQL Server, Azure SQL Database 

DROP FUNCTION [ IF EXISTS ] { [ schema_name. ] function_name } [ ,...n ]   
[;]
 -- Azure Synapse Analytics, Parallel Data Warehouse, Microsoft Fabric

DROP FUNCTION [IF EXISTS] [ schema_name. ] function_name
[;] 

参数

IF EXISTS
只有在函数已存在时才对其进行有条件地删除。 从 SQL Server 2016 和 SQL 数据库开始可用。

schema_name
用户定义函数所属的架构的名称。

function_name
要删除的用户定义函数的名称。 可以选择是否指定架构名称。 不能指定服务器名称和数据库名称。

注解

如果数据库中存在引用 DROP FUNCTION 的 Transact-SQL 函数或视图并且这些函数或视图通过使用 SCHEMABINDING 创建,或者存在引用该函数的计算列、CHECK 约束或 DEFAULT 约束,则 DROP FUNCTION 将失败。

如果存在引用此函数并且已生成索引的计算列,则 DROP FUNCTION 将失败。

权限

若要执行 DROP FUNCTION,用户至少应对函数所属架构具有 ALTER 权限,或对函数具有 CONTROL 权限。

示例

A. 删除函数

以下示例从 AdventureWorks2022 示例数据库的 Sales 架构中删除 fn_SalesByStore 用户定义函数。 若要创建此函数,请参阅 CREATE FUNCTION (Transact-SQL) 中的示例 B。

DROP FUNCTION Sales.fn_SalesByStore;  

另请参阅

ALTER FUNCTION (Transact-SQL)
CREATE FUNCTION (Transact-SQL)
OBJECT_ID (Transact-SQL)
EVENTDATA (Transact-SQL)
sys.sql_modules (Transact-SQL)
sys.parameters (Transact-SQL)