Rediger

Del via


DROP PROCEDURE (Transact-SQL)

Applies to: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL analytics endpoint in Microsoft Fabric Warehouse in Microsoft Fabric

Removes one or more stored procedures or procedure groups from the current database in SQL Server.

Transact-SQL syntax conventions

Syntax

Syntax for SQL Server, Azure SQL Managed Instance, and Azure SQL Database:

DROP { PROC | PROCEDURE } [ IF EXISTS ] { [ schema_name. ] procedure } [ , ...n ]

Syntax for Azure Synapse Analytics, Analytics Platform System (PDW), and Microsoft Fabric:

DROP { PROC | PROCEDURE } { [ schema_name. ] procedure_name }

Arguments

IF EXISTS

Applies to: SQL Server 2016 (13.x) and later versions, Azure SQL Managed Instance, and Azure SQL Database

Conditionally drops the procedure only if it already exists.

schema_name

The name of the schema to which the procedure belongs. A server name or database name can't be specified.

procedure

The name of the stored procedure or stored procedure group to be removed. Individual procedures within a numbered procedure group can't be dropped; the whole procedure group is dropped.

Best practices

Before removing any stored procedure, check for dependent objects and modify these objects accordingly. Dropping a stored procedure can cause dependent objects and scripts to fail when these objects aren't updated. For more information, see View the Dependencies of a Stored Procedure

Metadata

To display a list of existing procedures, query the sys.objects catalog view. To display the procedure definition, query the sys.sql_modules catalog view.

Permissions

Requires CONTROL permission on the procedure, or ALTER permission on the schema to which the procedure belongs, or membership in the db_ddladmin fixed server role.

Examples

The following example removes the dbo.uspMyProc stored procedure in the current database.

DROP PROCEDURE dbo.uspMyProc;
GO

The following example removes several stored procedures in the current database.

DROP PROCEDURE
    dbo.uspGetSalesbyMonth,
    dbo.uspUpdateSalesQuotes,
    dbo.uspGetSalesByYear;

The following example removes the dbo.uspMyProc stored procedure if it exists but doesn't cause an error if the procedure doesn't exist. This syntax was introduced in SQL Server 2016 (13.x).

DROP PROCEDURE IF EXISTS dbo.uspMyProc;
GO