DROP FUNCTION (Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsMicrosoft Fabric中的SQL分析端点Microsoft Fabric中的仓库Microsoft Fabric中的SQL数据库

从当前数据库中删除一个或多个用户定义函数。 用户自定义函数由使用 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 and 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,用户至少必须对该函数所属的模式拥有 ALTER 权限,或对该函数拥有 CONTROL 权限。

示例

A. 删除函数

以下示例将 fn_SalesByStore 用户自定义函数从AdventureWorks2025示例数据库中的 Sales 模式中移除。 要创建该函数,请参见(Transact-SQL)中的CREATE FUNCTION示例B。

DROP FUNCTION Sales.fn_SalesByStore;