DROP DATABASE (Transact-SQL)
Quita una o varias bases de datos de usuario o instantáneas de base de datos de una instancia de SQL Server.
Se aplica a: SQL Server (desde SQL Server 2008 hasta la versión actual), Windows Azure SQL Database (desde la versión inicial hasta la versión actual). |
Convenciones de sintaxis de Transact-SQL
Sintaxis
-- SQL Server Syntax
DROP DATABASE { database_name | database_snapshot_name } [ ,...n ] [;]
-- Windows Azure SQL Database Syntax
DROP DATABASE database_name [;]
Argumentos
database_name
Especifica el nombre de la base de datos que se va a quitar. Para mostrar una lista de bases de datos, use la vista de catálogo sys.databases.database_snapshot_name
Se aplica a: SQL Server 2008 a SQL Server 2014.
Especifica el nombre de la instantánea de base de datos que se va a quitar.
Notas generales
Una base de datos se puede quitar sea cual sea su estado (sin conexión, solo lectura, sospechosa, etc.). Para ver el estado actual de una base de datos, utilice la vista de catálogo sys.databases.
Una base de datos que se ha quitado solo puede volver a crearse si se restaura una copia de seguridad. No es posible realizar copias de seguridad de instantáneas de la base de datos, por lo que éstas no se pueden restaurar.
Cuando se quita una base de datos, debe realizarse una copia de seguridad de la base de datos maestra.
Al quitar una base de datos, se elimina la base de datos de una instancia de SQL Server, así como los archivos de disco físico que usa. Si la base de datos o alguno de sus archivos están sin conexión cuando se quita, no se eliminan los archivos de disco. Estos archivos se pueden eliminar manualmente en el Explorador de Windows. Para quitar una base de datos del servidor actual sin eliminar los archivos del sistema de archivos, use sp_detach_db.
SQL Server
Cuando se quita una instantánea de base de datos, se elimina la instantánea de base de datos de una instancia de SQL Server, así como los archivos físicos dispersos del sistema de archivos NTFS que emplea. Para obtener información sobre cómo las instantáneas de la base de datos utilizan archivos dispersos, vea Instantáneas de base de datos (SQL Server). Al quitar una instantánea de la base de datos se borra la caché del plan para la instancia de SQL Server. Al borrar la memoria caché del plan, se produce una recompilación de todos los planes de ejecución posteriores y se puede ocasionar una disminución repentina y temporal del rendimiento de las consultas. Para cada almacén de memoria caché borrado de la memoria caché del plan, el registro de errores de SQL Server contendrá el siguiente mensaje informativo: "SQL Server ha detectado %d instancias de vaciado del almacén de caché '%s' (parte de la memoria caché del plan) debido a determinadas operaciones de mantenimiento de base de datos o reconfiguración". Este mensaje se registra cada cinco minutos siempre que se vacíe la memoria caché dentro de ese intervalo de tiempo.
Interoperabilidad
SQL Server
Para quitar una base de datos publicada para la replicación transaccional, o suscrita o publicada para la replicación de mezcla, primero es necesario quitar la replicación de la base de datos. Si se daña una base de datos o no se puede quitar la replicación primero, o ambas cosas, la mayoría de las veces todavía se puede quitar la base de datos utilizando ALTER DATABASE para definirla como sin conexión y, después, quitarla.
Si la base de datos participa en el trasvase de registros, quite el trasvase de registros antes de quitar la base de datos. Para obtener más información, vea Acerca del trasvase de registros (SQL Server).
Windows Azure SQL Database
Ninguna
Limitaciones y restricciones
Las bases de datos del sistema no se pueden quitar.
La instrucción DROP DATABASE debe ejecutarse en modo de confirmación automática y no se permite en una transacción explícita o implícita. El modo de confirmación automática es el modo de administración de transacciones predeterminado.
No se puede quitar una base de datos que se está utilizando actualmente. Es decir, que un usuario la tenga abierta para lectura o escritura. Para quitar usuarios de la base de datos, utilice ALTER DATABASE para establecer la base de datos en SINGLE_USER.
SQL Server
Deben quitarse las instantáneas de una base de datos para poder quitar esa base de datos.
Windows Azure SQL Database
Debe estar conectado a la base de datos maestra para quitar una base de datos.
La instrucción DROP DATABASE debe ser la única instrucción en un lote SQL y solo puede quitar una base de datos cada vez.
Permisos
SQL Server
Requiere el permiso CONTROL en la base de datos o el permiso ALTER ANY DATABASE, o la pertenencia al rol fijo de base de datos db_owner.
Windows Azure SQL Database
Solo el inicio de sesión principal de nivel de servidor (creado por el proceso de aprovisionamiento) o los miembros del rol de base de datos dbmanager pueden quitar una base de datos.
Ejemplos
A.Quitar una sola base de datos
En el ejemplo siguiente se quita la base de datos Sales.
DROP DATABASE Sales;
B.Quitar varias bases de datos
Se aplica a: SQL Server 2008 a SQL Server 2014. |
En el ejemplo siguiente se quita cada una de las bases de datos enumeradas.
DROP DATABASE Sales, NewSales;
C.Quitar una instantánea de la base de datos
Se aplica a: SQL Server 2008 a SQL Server 2014. |
En el ejemplo siguiente se quita una instantánea de base de datos, denominada sales_snapshot0600, sin que la base de datos de origen se vea afectada.
DROP DATABASE sales_snapshot0600;