DROP DATABASE (Transact-SQL)
Quita una o más bases de datos de usuario o instantáneas de base de datos desde una instancia de SQL Server o bases de datos de usuario del servidor de Base de datos SQL de Windows Azure.
Se aplica a: SQL Server (de la versión SQL Server 2008 a la versión actual), Base de datos SQL de Windows Azure (de 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 [;]
-- Core Syntax (common to SQL Server and SQL Database)
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
Especifica el nombre de la instantánea de base de datos que se va a quitar.Se aplica a: Solo disponible en SQL Server.
Observaciones generales
Núcleo
Las bases de datos se pueden descartar independientemente de su estado: sin conexión, solo lectura, sospechosa y así sucesivamente. Para ver el estado actual de una base de datos, use 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.
SQL Server
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.
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. Borrar la caché del plan da lugar a una nueva compilación de todos los planes de ejecución posteriores y puede ocasionar una disminución repentina y temporal del rendimiento de las consultas. Para cada borrado de la caché del plan, el registro de errores de SQL Server contiene el siguiente mensaje informativo: "SQL Server detectó %d instancias de vaciado del almacén de caché "%s" (parte de la caché del plan) debido a determinadas operaciones de mantenimiento de base de datos o reconfiguración". Este mensaje se registra cada cinco minutos siempre y cuando la memoria caché se vacíe dentro de ese intervalo de tiempo.
Base de datos SQL de Windows Azure
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.
Las bases de datos se pueden descartar independientemente de su estado: sin conexión, solo lectura, sospechosa y así sucesivamente. Para ver el estado actual de una base de datos, use la vista de catálogo sys.databases.
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).
Base de datos SQL de Windows Azure
Ninguno
Limitaciones y restricciones
Núcleo
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.
Base de datos SQL de Windows Azure
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.
Base de datos SQL de Windows Azure
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.
Se aplica a: SQL Server y Base de datos SQL de Windows Azure |
DROP DATABASE Sales;
B. Quitar varias bases de datos
En el ejemplo siguiente se quita cada una de las bases de datos enumeradas.
Se aplica a: SQL Server |
DROP DATABASE Sales, NewSales;
C. Quitar una instantánea de la base de datos
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.
Se aplica a: SQL Server |
DROP DATABASE sales_snapshot0600;