Este script limpia todas las vistas, SPS, funciones PK, FK y tablas.
/* Drop all non-system stored procs */
DECLARE @name VARCHAR(128)
DECLARE @SQL VARCHAR(254)
SELECT @name = (SELECT TOP 1 [name] FROM sysobjects WHERE [type] = 'P' AND category = 0 ORDER BY [name])
WHILE @name is not null
BEGIN
SELECT @SQL = 'DROP PROCEDURE [dbo].[' + RTRIM(@name) +']'
EXEC (@SQL)
PRINT 'Dropped Procedure: ' + @name
SELECT @name = (SELECT TOP 1 [name] FROM sysobjects WHERE [type] = 'P' AND category = 0 AND [name] > @name ORDER BY [name])
END
GO
/* Drop all views */
DECLARE @name VARCHAR(128)
DECLARE @SQL VARCHAR(254)
SELECT @name = (SELECT TOP 1 [name] FROM sysobjects WHERE [type] = 'V' AND category = 0 ORDER BY [name])
WHILE @name IS NOT NULL
BEGIN
SELECT @SQL = 'DROP VIEW [dbo].[' + RTRIM(@name) +']'
EXEC (@SQL)
PRINT 'Dropped View: ' + @name
SELECT @name = (SELECT TOP 1 [name] FROM sysobjects WHERE [type] = 'V' AND category = 0 AND [name] > @name ORDER BY [name])
END
GO
/* Drop all functions */
DECLARE @name VARCHAR(128)
DECLARE @SQL VARCHAR(254)
SELECT @name = (SELECT TOP 1 [name] FROM sysobjects WHERE [type] IN (N'FN', N'IF', N'TF', N'FS', N'FT') AND category = 0 ORDER BY [name])
WHILE @name IS NOT NULL
BEGIN
SELECT @SQL = 'DROP FUNCTION [dbo].[' + RTRIM(@name) +']'
EXEC (@SQL)
PRINT 'Dropped Function: ' + @name
SELECT @name = (SELECT TOP 1 [name] FROM sysobjects WHERE [type] IN (N'FN', N'IF', N'TF', N'FS', N'FT') AND category = 0 AND [name] > @name ORDER BY [name])
END
GO
/* Drop all Foreign Key constraints */
DECLARE @name VARCHAR(128)
DECLARE @constraint VARCHAR(254)
DECLARE @SQL VARCHAR(254)
SELECT @name = (SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE constraint_catalog=DB_NAME() AND CONSTRAINT_TYPE = 'FOREIGN KEY' ORDER BY TABLE_NAME)
WHILE @name is not null
BEGIN
SELECT @constraint = (SELECT TOP 1 CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE constraint_catalog=DB_NAME() AND CONSTRAINT_TYPE = 'FOREIGN KEY' AND TABLE_NAME = @name ORDER BY CONSTRAINT_NAME)
WHILE @constraint IS NOT NULL
BEGIN
SELECT @SQL = 'ALTER TABLE [dbo].[' + RTRIM(@name) +'] DROP CONSTRAINT [' + RTRIM(@constraint) +']'
EXEC (@SQL)
PRINT 'Dropped FK Constraint: ' + @constraint + ' on ' + @name
SELECT @constraint = (SELECT TOP 1 CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE constraint_catalog=DB_NAME() AND CONSTRAINT_TYPE = 'FOREIGN KEY' AND CONSTRAINT_NAME <> @constraint AND TABLE_NAME = @name ORDER BY CONSTRAINT_NAME)
END
SELECT @name = (SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE constraint_catalog=DB_NAME() AND CONSTRAINT_TYPE = 'FOREIGN KEY' ORDER BY TABLE_NAME)
END
GO
/* Drop all Primary Key constraints */
DECLARE @name VARCHAR(128)
DECLARE @constraint VARCHAR(254)
DECLARE @SQL VARCHAR(254)
SELECT @name = (SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE constraint_catalog=DB_NAME() AND CONSTRAINT_TYPE = 'PRIMARY KEY' ORDER BY TABLE_NAME)
WHILE @name IS NOT NULL
BEGIN
SELECT @constraint = (SELECT TOP 1 CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE constraint_catalog=DB_NAME() AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND TABLE_NAME = @name ORDER BY CONSTRAINT_NAME)
WHILE @constraint is not null
BEGIN
SELECT @SQL = 'ALTER TABLE [dbo].[' + RTRIM(@name) +'] DROP CONSTRAINT [' + RTRIM(@constraint)+']'
EXEC (@SQL)
PRINT 'Dropped PK Constraint: ' + @constraint + ' on ' + @name
SELECT @constraint = (SELECT TOP 1 CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE constraint_catalog=DB_NAME() AND CONSTRAINT_TYPE = 'PRIMARY KEY' AND CONSTRAINT_NAME <> @constraint AND TABLE_NAME = @name ORDER BY CONSTRAINT_NAME)
END
SELECT @name = (SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE constraint_catalog=DB_NAME() AND CONSTRAINT_TYPE = 'PRIMARY KEY' ORDER BY TABLE_NAME)
END
GO
/* Drop all tables */
DECLARE @name VARCHAR(128)
DECLARE @SQL VARCHAR(254)
SELECT @name = (SELECT TOP 1 [name] FROM sysobjects WHERE [type] = 'U' AND category = 0 ORDER BY [name])
WHILE @name IS NOT NULL
BEGIN
SELECT @SQL = 'DROP TABLE [dbo].[' + RTRIM(@name) +']'
EXEC (@SQL)
PRINT 'Dropped Table: ' + @name
SELECT @name = (SELECT TOP 1 [name] FROM sysobjects WHERE [type] = 'U' AND category = 0 AND [name] > @name ORDER BY [name])
END
GO
Estoy usando este script de Adam Anderson, actualizado para admitir objetos en otros esquemas que no sean dbo.
Fuente: una publicación de blog de Adam Anderson
fuente
-- system-versioned tables SELECT @stmt = isnull(@stmt + CHAR(10), '') + 'alter table [' + schema_name(schema_id) + '].[' + name + '] SET ( SYSTEM_VERSIONING = OFF)' FROM sys.tables WHERE TEMPORAL_TYPE = 2;
Lo mejor que puede hacer es " Generar scripts para soltar "
Seleccione Base de datos -> Clic derecho -> Tareas -> Generar guiones - se abrirá el asistente para generar guiones
Después de elegir los objetos en la opción Establecer secuencias de comandos, haga clic en el botón Avanzado
-> Establezca la opción 'Script para crear' en verdadero (desea crear)
-> Establezca la opción ' Script to Drop ' en verdadero (desea soltar)
-> Seleccione la casilla de verificación para seleccionar los objetos que desean crear el script
-> Seleccione la opción para escribir script (Archivo, Nueva ventana, Portapapeles)
Incluye objetos dependientes de forma predeterminada (y eliminará la restricción al principio)
Ejecute el script
De esta manera podemos personalizar nuestro script.
fuente
Para soltar todas las tablas:
Esto, por supuesto, eliminará todas las restricciones, disparadores, etc., todo menos los procedimientos almacenados.
Para los procedimientos almacenados, me temo que necesitará otro procedimiento almacenado almacenado en
master
.fuente
stored procedures
etcLo haría en dos declaraciones:
DROP DATABASE ???
y entonces
CREATE DATABASE ???
fuente
Probé algunos de los guiones aquí, pero no funcionaron para mí, ya que tengo mis tablas en esquemas. Así que armé lo siguiente. Tenga en cuenta que este script toma una lista de esquemas, y luego los suelta en secuencia. Debe asegurarse de tener un pedido completo en sus esquemas. Si hay dependencias circulares, fallará.
fuente
Haga una copia de seguridad de una base de datos completamente vacía. En lugar de soltar todos los objetos, simplemente restaure la copia de seguridad.
fuente
Esto es lo que he intentado:
Cualquiera que sea el resultado que imprimirá, simplemente copie todo y pegue en una nueva consulta y presione ejecutar. Esto eliminará todas las tablas.
fuente
Accidentalmente ejecuté un script db init contra mi base de datos maestra esta noche. De todos modos, rápidamente me encontré con este hilo. Usé el: exec sp_MSforeachtable 'DROP TABLE?' respondí, pero tuve que ejecutarlo varias veces hasta que no se produjo un error (dependencias). Después de eso me topé con algunos otros subprocesos y reconstruí esto para eliminar todos los procedimientos y funciones almacenados.
fuente
Prueba esto
fuente
Además de la respuesta de @ Ivan, todos los tipos deben ser incluidos
fuente
Tienes que deshabilitar todo
triggers
yconstraints
primero.Después de eso, puede generar los scripts para eliminar los objetos como
Ejecute las declaraciones generadas.
fuente
Parece una característica bastante peligrosa para mí. Si implementara algo como esto, me aseguraría de asegurarlo adecuadamente de una manera que no pueda ejecutar esto por accidente.
Como se sugirió antes, puede realizar algún tipo de procedimiento almacenado usted mismo. En SQL Server 2005, puede echar un vistazo a esta tabla del sistema para determinar y encontrar los objetos que desea soltar.
fuente
Aquí encontré una nueva consulta para eliminar todos los sp, funciones y disparadores
fuente
Para agregar a la respuesta de Ivan, también tuve la necesidad de eliminar todos los tipos definidos por el usuario, así que agregué esto al script:
fuente
No hay una declaración única que pueda usarse para lograr este objetivo.
Por supuesto, podrías crear un
stored procedure
que podría utilizar para realizar estas diversas tareas administrativas.A continuación, puede ejecutar el procedimiento utilizando esta única declaración.
fuente
fuente
Para eliminar todos los objetos en Oracle:
1) dinámico
2) estático
fuente
intente esto con sql2012 o superior,
esto será de ayuda para eliminar todos los objetos por esquema seleccionado
fuente
Otra alternativa sería:
fuente
prueba esto....
fuente