SQLServer Eliminar todas las tablas de una base de datos




Vamos a eliminar todos las tablas de una base de datos.
Parece tan sencillo como seleccionar todas las tablas, botón derecho y eliminar… pero no es así, existen reglas de integridad referencial entre las tablas. Puedes intentar borrar una a una e ir borrando las relacionadas según te vaya dando errores… Suerte!!!!

Una forma sencilla de borrar las tablas, es siguiendo estos 3 pasos:

  • Desactivar la integridad referencial
  • Borrar las tablas
  • Volver a activar la integridad referencial

Para hacer esto, solo tenemos que ejecutar este script sobre una consulta de BBDD:

— Primero desabilitar la integridad referencial
EXEC sp_MSForEachTable ‘ALTER TABLE ? NOCHECK CONSTRAINT ALL’
GO

EXEC sp_MSforeachtable @command1 = “DROP TABLE ?”

— Ahora volver a habilitar la integridad referencial
EXEC sp_MSForEachTable ‘ALTER TABLE ? CHECK CONSTRAINT ALL’
GO

Volver a habilitar la integridad referencial puede parecer que no tiene sentido al haber borrado las tablas, es recomendable reactivarla para que su funcionamiento sea normal en adelante.

PD: Si no os ha borrado todas las tablas, es posible que la tengáis que ejecutar varias veces