DROP Statement

Removes a database object from the database.

Syntax


DROP {
    [ DATABASE ] <database_name>
    | {
        [ LOGIN ] <login_name>
        | SERVER ROLE <server_role_name>
        | ROLE <database_role_name>
        | USER <user_name>
        | ASSEMBLY <assembly_name> [ FROM FILE = '<os_file_name>' ]
        | CERTIFICATE <certificate_name>
        | CONTRACT <contract_name>
        | SYNONYM <synonym_name>
        | XML SCHEMA COLLECTION <xml_schema_collection_name>
        | APPLICATION ROLE <application_role_name>
        | ASYMMETRIC KEY <asymmetric_key_name>
        | BROKER SERVICE <broker_service_name>
        | COLUMN <column_name> ON <table_name>
        | CONSTRAINT <constraint_name> ON <table_name>
        | CREDENTIAL <credential_name>
        | DATABASE AUDIT SPECIFICATION <database_audit_specification_name>
        | DATABASE SCOPED CREDENTIAL <database_scoped_credential_name>
        | ENDPOINT <endpoint_name> [ AS { USER | DATABASE } ]
        | EVENT NOTIFICATION <event_notification_name>
        | FILEGROUP <filegroup_name>
        | FUNCTION <function_name> [ ( [ @parameter [ = value ]... ] ) ]
        | MESSAGE TYPE <message_type_name>
        | PROCEDURE <procedure_name> [ ( [ @parameter [ = value ]... ] ) ]
        | QUEUE <queue_name> [ FROM <schema_name> ]
        | REMOTE SERVICE BINDING <remote_service_binding_name>
        | ROUTE <route_name>
        | SCHEMA <schema_name>
        | SEARCH PROPERTY LIST <search_property_list_name>
        | SERVICE <service_name>
        | STATISTICS <statistics_name> [ ON <table_name> ]
        | SYNCHRONIZATION SUBSCRIPTION <subscription_name>
        | TYPE <type_name>
        | USER <user_name>
        | VIEW <view_name>
        | WORKLOAD GROUP <workload_group_name>
    }
}
[ ; ]
            

Important Considerations

  • The DROP statement is irreversible. Once an object is dropped, it cannot be recovered without restoring from a backup.
  • Ensure you have the necessary permissions to drop an object.
  • Always back up your database before performing any significant DDL operations.

Parameters

Parameter Description
DATABASE Specifies that the entire database object is to be dropped.
LOGIN Specifies that the login is to be dropped.
<object_name> The name of the object to be dropped (e.g., table, view, procedure).
ON <table_name> Used when dropping a column, constraint, or statistics from a specific table.

Examples

Dropping a Table

This example drops a table named Sales.Customers.


DROP TABLE Sales.Customers;
            

Dropping a View

This example drops a view named dbo.vw_ActiveOrders.


DROP VIEW dbo.vw_ActiveOrders;
            

Dropping a Stored Procedure

This example drops a stored procedure named dbo.usp_GetProductDetails.


DROP PROCEDURE dbo.usp_GetProductDetails;
            

Dropping a Column from a Table

This example drops the EmailAddress column from the Person.Contact table.


ALTER TABLE Person.Contact
DROP COLUMN EmailAddress;
            

Dropping a Primary Key Constraint

This example drops a primary key constraint named PK_Product_ProductID from the Production.Product table.


ALTER TABLE Production.Product
DROP CONSTRAINT PK_Product_ProductID;
            

Dropping a Database

This example drops an entire database named MyOldDatabase. Use with extreme caution!


DROP DATABASE MyOldDatabase;
            

Permissions

To execute the DROP DATABASE statement, a user must be a member of the fixed server roles dbcreator or sysadmin.

To drop other objects, the user must have sufficient permissions on the specific object, typically CONTROL permission for the object or membership in a role that grants this permission.