DROP PROCEDURE (Transact-SQL)
适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics 分析平台系统 (PDW) Microsoft Fabric 中的 SQL 分析端点 Microsoft Fabric 中的仓库
从 SQL Server 的当前数据库中删除一个或多个存储过程或过程组。
语法
SQL Server、Azure SQL 托管实例和Azure SQL 数据库的语法:
DROP { PROC | PROCEDURE } [ IF EXISTS ] { [ schema_name. ] procedure } [ , ...n ]
Azure Synapse Analytics、Analytics Platform System (PDW) 和 Microsoft Fabric 的语法:
DROP { PROC | PROCEDURE } { [ schema_name. ] procedure_name }
参数
IF EXISTS
适用于:SQL Server 2016(13.x)及更高版本、Azure SQL 托管实例和Azure SQL 数据库
有条件地删除过程(仅当其已存在时)。
schema_name
过程所属架构的名称。 无法指定服务器名称或数据库名称。
procedure
要删除的存储过程或存储过程组的名称。 无法删除编号过程组中的各个过程;删除整个过程组。
最佳做法
在删除任何存储过程之前,请检查依赖对象,并且相应地修改这些对象。 删除存储过程可能会导致在未更新这些对象时依赖对象和脚本失败。 有关详细信息,请参阅查看存储过程的依赖关系
Metadata
若要显示现有过程的列表,请查询 sys.objects
目录视图。 若要显示过程定义,请查询 sys.sql_modules
目录视图。
权限
CONTROL
要求对过程具有权限,或对过程所属的架构具有权限,或ALTER
db_ddladmin固定服务器角色的成员身份。
示例
下面的示例将删除当前数据库中的 dbo.uspMyProc
存储过程。
DROP PROCEDURE dbo.uspMyProc;
GO
下面的示例将删除当前数据库中的多个存储过程。
DROP PROCEDURE
dbo.uspGetSalesbyMonth,
dbo.uspUpdateSalesQuotes,
dbo.uspGetSalesByYear;
以下示例删除 dbo.uspMyProc
存储过程(如果存在),但如果过程不存在,则不会导致错误。 此语法是在 SQL Server 2016(13.x)中引入的。
DROP PROCEDURE IF EXISTS dbo.uspMyProc;
GO