En el anterior post explicamos como actualizar o borrar registros mediante UPDATE y DELETE. Nos ayudamos, eso sí, creando una forma muy simple de copia de seguridad, que nos permitió experimentar sin miedo a modificar o perder datos irremediablemente.
En este post, último de la serie básica de SQL Server, vamos a ver como borrar completamente una base de datos entera y como hay unos métodos y comandos específicos para hacerlo.
Este post forma parte del Tutorial básico de SQL Server cuyo índice completo puedes ver aquí: Tutorial básico de SQL Server
Botón derecho
Bien, vamos a intentar el camino fácil: Botón derecho en la base de datos "Tercera" (que realmente solo tiene una tabla vacía):

La base de datos ha sido eliminada. O no. Puede habernos salido un error tipo:
Cannot drop database "Tercera" because it is currently in use.
Esto es debido a que si hemos realizado la operación nada más abrir SSMS, esta base de datos no tiene conexiones abiertas en ese momento y ha podido hacer la operación. Sin embargo, si no es así, para forzar la eliminación podemos marcar el check "Cerrar conexiones existentes" en la ventana de confirmación de la eliminación;

T-SQL y/o Copilot
El comando para borrar objetos es DROP mas el tipo de objeto seguido del nombre del objeto.
Pero antes de ello; si probando el método anterior ya hemos borrado la base de datos, podemos crear un script rápido para seguir practicando:
use master
go
create database Tercera;
go
use Tercera
go
create table Prueba(
Prueba int
);
go
insert into Prueba
values (2);
go
Vamos primero a borrar la tabla creada, en este caso la instrucción sería:
DROP TABLE Prueba
Incluso con datos dentro de la tabla, el comando no tiene ningún problema en borrar la tabla. Probemos ahora con la base de datos:
DROP DATABASE Tercera;
Al probarlo puede que nos pase lo del caso anterior: que la conexión esté abierta. Claro, ahora no tenemos ningún "check" para cerrar la conexiones entrantes, ¿como lo hacemos en código? y ya que estamos, ¿Por que no le preguntamos a Copilot?.
Elabora un script simple para borrar la base de datos Tercera
La respuesta que nos tiene que haber dado debe ser similar a esta:

Es muy completa; nos ha propuesto incluso programación T-SQL. Vamos a examinarla:
La primera opción es la que ya hemos probado por lo que si nos ha dado el error de que no puede borrarla, vamos a probar la segunda opción.
En este caso nos ha propuesto un condicional. Debemos comprobar si existe para ello utiliza la programación especifica de T-SQL IF EXISTS. La condición entre paréntesis busca "si existe" el nombre de la base de datos entre todas las bases de datos que cuelgan de la base de datos del sistema. Es decir selecciona al menos un registro con el nombre "Tercera" en sys.databases.
El lote de instrucciones que debe ejecutarse si la condición es verdadera va entre las palabras reservadas BEGIN..END. En este caso intenta de nuevo el DROP y muestra un mensaje en la pestaña Resultados (esto se hace con el comando PRINT). Si la condición no se cumple, el ELSE también tiene un mensaje en el bloque BEGIN..END.
En realidad queremos que no funcione (😲) para poder probar la tercera opción. Nos aseguramos que el desplegable de la base de datos disponible sea "Tercera" (o mas fácil ponemos USE Tercera antes del opción 2). Al seleccionar y ejecutar nos arrojará el mensaje de siempre.
Pues vamos con al tercera opción. Es idéntica a la segunda opción, pero fuerza la modificación de una característica de la base de datos.
El comando que sirve para hacer esto es ALTER seguido del tipo de objeto mas el nombre del objeto, asi como la característica o parámetro que se quiere modificar
En el ejemplo propuesto al modificar con SET a "single_user", una única conexión podrá acceder a la base de datos. Con WITH ROLLBACK INMEDIATE desconecta otros usuarios revertiendo cambios no guardados de los procesos.
Seleccionamos y probamos la ejecución de esta tercera opción. La base de datos se ha eliminado.
Todo esto es mas avanzado, pero es un forma rápida de incluir un código que nos va a funcionar en casi cualquier circunstancia.
Hemos finalizado el Tutorial básico de SQL Server.
Esperemos que te hayas familiarizado con los comandos fundamentales que gestionan una tabla. Pero una tabla es la "punta del iceberg" como se dice popularmente; porque el gran potencial de las bases de datos relacionales es precisamente eso, las relaciones entre numerosas tablas, y ahí las uniones JOIN, entre otros potentes comandos avanzados, será objeto de futuros post de este blog.
