DROP PROCEDURE (Transact-SQL)
适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)Microsoft Fabric 中的 SQL 分析终结点Microsoft Fabric 中的仓库
从 SQL Server 的当前数据库中删除一个或多个存储过程或过程组。
语法
-- Syntax for SQL Server and Azure SQL Database
DROP { PROC | PROCEDURE } [ IF EXISTS ] { [ schema_name. ] procedure } [ ,...n ]
-- Syntax for Azure Synapse Analytics and Parallel Data Warehouse and Microsoft Fabric
DROP { PROC | PROCEDURE } { [ schema_name. ] procedure_name }
注意
若要查看 SQL Server 2014 (12.x) 及更早版本的 Transact-SQL 语法,请参阅早期版本文档。
自变量
IF EXISTS
适用范围:SQL Server(SQL Server 2016 (13.x) 到当前版本)。
有条件地删除过程(仅当其已存在时)。
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
另请参阅
ALTER PROCEDURE (Transact-SQL)
CREATE PROCEDURE (Transact-SQL)
sys.objects (Transact-SQL)
sys.sql_modules (Transact-SQL)
删除存储过程
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈