Dropping Stored Procedures

This section describes how to remove stored procedures from your SQL Server database.

In SQL Server, a stored procedure can be removed using the DROP PROCEDURE statement. This statement permanently deletes the stored procedure and its associated metadata from the database.

Syntax

The basic syntax for dropping a stored procedure is as follows:


DROP PROCEDURE [ IF EXISTS ] <schema_name>.<procedure_name>;
            

Examples

Example 1: Dropping a specific stored procedure

This example drops a stored procedure named usp_GetCustomerDetails from the Sales schema.


DROP PROCEDURE Sales.usp_GetCustomerDetails;
            

Example 2: Dropping a stored procedure if it exists

This example safely drops the procedure usp_UpdateProductInventory. If the procedure does not exist, no error will occur.


DROP PROCEDURE IF EXISTS dbo.usp_UpdateProductInventory;
            

Important Considerations

Caution: Irreversible Operation

Dropping a stored procedure is an irreversible action. Once dropped, the procedure cannot be recovered directly. Ensure you have backups or that the procedure is no longer needed before executing the DROP PROCEDURE statement.

Tip: Check Dependencies

Before dropping a procedure, it's good practice to check for any dependencies. Other stored procedures, views, triggers, or applications might rely on the procedure you intend to drop. Use system catalog views like sys.sql_modules and sys.objects to find dependent objects.

Permissions

To drop a stored procedure, you typically need ALTER permission on the schema containing the procedure, or db_owner fixed database role membership.

For instance, to drop the Sales.usp_GetCustomerDetails procedure, the user would need:


GRANT ALTER ON SCHEMA::Sales TO YourUserName;
            

Alternatively, belonging to the db_owner role provides sufficient privileges.

Dropping Multiple Stored Procedures

You can drop multiple stored procedures in a single statement by listing them, separated by commas:


DROP PROCEDURE Sales.usp_GetCustomerDetails, Sales.usp_UpdateOrder;
            

See Also