Cómo eliminar todas las tablas de una base de datos de SQL Server


Mejor respuesta

En SSMS :

Haga clic con el botón derecho en la base de datos

Vaya a «Tareas»

Haga clic en «Generar scripts»

En la sección «Elegir objetos», seleccione «Secuencia de comandos de toda la base de datos y todos los objetos de la base de datos»

En la sección «Establecer opciones de secuencia de comandos», haga clic en el botón «Avanzado»

En «Script DROP y CREATE» cambie «Script CREATE» a «Script DROP» y presione OK

Luego, guarde en el archivo, portapapeles o en una nueva ventana de consulta.

Ejecute el script.

Ahora, esto eliminará todo, incluida la base de datos. Asegúrese de eliminar el código de los elementos que no desea eliminar. Alternativamente, en la sección «Elegir objetos», en lugar de seleccionar el script para toda la base de datos, simplemente seleccione los elementos que desea eliminar.

Con la ayuda del script :

SET @Cursor = CURSOR FAST\_FORWARD FOR

SELECT DISTINCT sql = "ALTER TABLE [" + tc2.TABLE\_SCHEMA + "].[" + tc2.TABLE\_NAME + "] DROP [" + rc1.CONSTRAINT\_NAME + "];"

FROM INFORMATION\_SCHEMA.REFERENTIAL\_CONSTRAINTS rc1

LEFT JOIN INFORMATION\_SCHEMA.TABLE\_CONSTRAINTS tc2 ON tc2.CONSTRAINT\_NAME =rc1.CONSTRAINT\_NAME

OPEN @Cursor FETCH NEXT FROM @Cursor INTO @Sql

WHILE (@@FETCH\_STATUS = 0)

BEGIN

Exec sp\_executesql @Sql

FETCH NEXT FROM @Cursor INTO @Sql

END

CLOSE @Cursor DEALLOCATE @Cursor

GO

EXEC sp\_MSforeachtable "DROP TABLE ?"

GO

https://stackoverflow.com/questions/8439650/how-to-drop-all-tables-in-a-sql-server-database/43128914

Respuesta

Esta es una respuesta basada en opiniones de alguien que comprende el mercado y las tecnologías de TI actuales y ha utilizado SQL Server, así como varias otras tecnologías de bases de datos para sobre un década: el futuro de SQL Server dependerá del futuro del uso de SQL como lenguaje de consulta. Los sistemas de gestión de bases de datos relacionales, tal como los conocemos, no han cambiado mucho en las últimas dos décadas, mientras que casi todos los demás temas relacionados con la informática sí lo han hecho. El éxito de SQL está en su simplicidad y en niveles más bajos de abstracción siempre necesitaremos una tecnología como esta. Sin embargo, hay un puñado de necesidades que SQL y RDBMS «simplemente no» brindan en su forma actual. Tienen problemas cuando se trata de tipos de datos con metadatos. Por ejemplo, ¿esta fecha representa el cumpleaños de alguien? ¿Este nvarchar (50) representa una dirección de correo electrónico? ¿Estos dos valores representan un rango de fechas en el que un elemento no debería ser mayor que el otro? SQL Server maneja esto con desencadenantes, pero hay TANTO trabajo que requiere mucho tiempo para implementar este tipo de desencadenantes que las empresas a menudo omiten el trabajo y confían en las capas de software para resolver este problema. Esto crea una falta de organización y coherencia en todo el proyecto. No manejan las necesidades basadas en la replicación de forma abstracta. Por ejemplo, si dos sistemas desconectados necesitan crear un nuevo registro en una tabla, ¿qué nueva clave de IDENTIDAD se debe generar? Este problema se puede resolver utilizando claves compuestas o GUID o un puñado de otras formas, pero el consumidor de SQL debe preocuparse por estas complejidades. No manejan la administración del tiempo bitemporal de forma abstracta. Por ejemplo, si necesita realizar un seguimiento de lo que pensamos que era la verdad en julio de 2013, pero También necesitamos almacenar datos corregidos sobre 2013 que no aprendimos hasta 2016, crear un esquema para manejar eso y mantener la integridad referencial es bastante complejo … Ya existen propuestas sobre cómo hacer que este problema sea más fácil de abordar, pero la mentalidad actual sí no lo resuelvo. No hacen un buen trabajo incorporando un «Modelo» de sus datos. El esquema físico no hace un buen trabajo al describir cosas simples como «Este booleano el valor representa un verdadero o falso. «, o» Esta fecha probablemente será en los próximos meses, así que use un control de calendario donde esta otra fecha será años en el pasado, por lo que use menús desplegables para mm / dd / aaaa » . Como tal, se han construido numerosas herramientas de «inteligencia empresarial» o «informes» sobre estos sistemas para proporcionar dicha capacidad, pero la mayoría de ellas siguen siendo propietarias y están cambiando año tras año, ya que aún no se ha puesto a disposición de todos una gran solución. de una manera monopolística (tan buena que acaba con la competencia y establece sus propios estándares). No se ocupan de la obsolescencia aceptada de los datos. No hay una manera fácil de indicar cuando solicita datos que los datos más antiguos en un servidor dentro de un clúster pueden ser old es aceptable si se puede encontrar más rápidamente. Esto causa problemas de rendimiento y es una de las principales razones por las que han aparecido bases de datos «NoSQL». Si bien numerosas «tecnologías NoSQL» brindan soluciones para pequeñas partes de este problema, existen muchos problemas que simplemente no se han resuelto. Por ejemplo, los sistemas distribuidos no funcionan bien con el aislamiento basado en transacciones sin presentar problemas importantes de rendimiento.Hay cosas que podemos comunicar cuando hacemos una pregunta sobre nuestros datos, por ejemplo, ¿qué antigüedad de los datos es aceptable? ¿Quiero ser notificado si estos datos cambian por algún motivo? ¿Es posible que vaya a querer cambiar los datos que estoy solicitando en un futuro cercano o es simplemente una lectura sin intención de cambio en el futuro? Hay muchos otros problemas también, pero el punto importante aquí es que el futuro de SQL Server será impulsado por la economía y la disponibilidad e implementación de nuevas ideas … Estoy seguro de que tenemos un mínimo de 5-8 años donde SQL sigue siendo la forma más popular de hacer una pregunta de sus datos y pedir que se modifiquen, pero tiene deficiencias y esta área de la informática se debe a una «nueva gran cosa». Los avances en la velocidad del disco, el tamaño del disco en función del costo, el tamaño de la RAM en función del costo y probablemente, sobre todo, la idea de utilizar la «computación en la nube» mediante el escalado horizontal en lugar de vertical, son todas variables nuevas en el mundo de los datos que la arquitectura de software todavía está luchando ponerse al día con. El futuro de SQL Server es: cambio gradual pero sostenible hacia una forma más eficiente de trabajar con nuestros datos. Es probable que vea un cambio de nombre y un cambio de SQL como lenguaje de consulta hacia un lenguaje más poderoso que resuelve mejor los problemas que se le presentan al arquitecto de software moderno.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *