esse script limpa todas as visualizações, SPS, funções PKs, FKs e tabelas.
/* 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
Estou usando esse script de Adam Anderson, atualizado para suportar objetos em outros esquemas que não o dbo.
Fonte: uma postagem no blog de Adam Anderson
fonte
-- 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;
A melhor coisa a fazer é " Gerar scripts para o Drop "
Selecione Banco de Dados -> Clique com o Botão Direito -> Tarefas -> Gerar Scripts - abrirá o assistente para gerar scripts
depois de escolher os objetos na opção Definir script, clique no botão Avançado
-> Defina a opção 'Script para criar' como true (deseja criar)
-> Defina a opção ' Script para soltar ' como true (deseja soltar)
-> Marque a caixa de seleção para selecionar objetos que deseja criar script
-> Selecione a opção para escrever o script (Arquivo, Nova janela, Área de transferência)
Ele inclui objetos dependentes por padrão. (E eliminará a restrição no início)
Execute o script
Dessa forma, podemos personalizar nosso script.
fonte
Para descartar todas as tabelas:
Obviamente, isso eliminará todas as restrições, gatilhos etc., tudo, exceto os procedimentos armazenados.
Para os procedimentos armazenados, receio que você precise de outro procedimento armazenado
master
.fonte
stored procedures
etc.Eu faria isso em duas declarações:
DROP DATABASE ???
e depois
CREATE DATABASE ???
fonte
Eu tentei alguns dos scripts aqui, mas eles não funcionaram para mim, pois tenho minhas tabelas em esquemas. Então, juntei o seguinte. Observe que esse script pega uma lista de esquemas e descarta em sequência. Você precisa ter uma ordem completa em seus esquemas. Se houver alguma dependência circular, ela falhará.
fonte
Faça backup de um banco de dados completamente vazio. Em vez de soltar todos os objetos, basta restaurar o backup.
fonte
Isto é o que eu tentei:
Qualquer que seja a saída que será impressa, basta copiar tudo e colar em uma nova consulta e pressionar executar. Isso excluirá todas as tabelas.
fonte
Eu acidentalmente executei um script init db no meu banco de dados mestre esta noite. Enfim, eu rapidamente corri para este segmento. Eu usei o: exec sp_MSforeachtable 'DROP TABLE?' resposta, mas tive que executá-lo várias vezes até que não houvesse erro (dependências.) Depois disso, deparei-me com alguns outros threads e os reuni para eliminar todos os procedimentos e funções armazenados.
fonte
Tente isto
fonte
Além da resposta de @ Ivan, todos os tipos precisam ser incluídos
fonte
Você precisa desativar tudo
triggers
econstraints
primeiro.Depois disso, você pode gerar os scripts para excluir os objetos como
Execute as instruções geradas.
fonte
Parece uma característica bastante perigosa para mim. Se você implementasse algo assim, asseguraria a segurança adequada de uma maneira que você não consiga executar por acidente.
Conforme sugerido antes, você mesmo pode fazer algum tipo de procedimento armazenado. No SQL Server 2005, você pode dar uma olhada nesta tabela de sistema para determinar e encontrar os objetos que você gostaria de descartar.
fonte
Aqui encontrei uma nova consulta para excluir todos os sp, funções e gatilhos
fonte
Para adicionar à resposta de Ivan, também tive a necessidade de descartar todos os tipos definidos pelo usuário, então adicionei isso ao script:
fonte
Não existe uma única declaração que possa ser usada para atingir esse objetivo.
Obviamente, você pode criar um item
stored procedure
que possa usar para executar essas várias tarefas administrativas.Você pode então executar o procedimento usando esta única instrução.
fonte
fonte
Para remover todos os objetos no oracle:
1) Dinâmico
2) Estático
fonte
tente isso com sql2012 ou superior,
isso ajudará a excluir todos os objetos pelo esquema selecionado
fonte
Outra alternativa seria:
fonte
tente isso ....
fonte