ce script nettoie toutes les vues, SPS, fonctions PKs, FKs et tables.
/* 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
J'utilise ce script d'Adam Anderson, mis à jour pour prendre en charge des objets dans d'autres schémas que dbo.
Source: un article de blog d'Adam Anderson
la source
-- 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;
La meilleure chose à faire est " Générer des scripts pour Drop "
Sélectionnez Base de données -> Clic droit -> Tâches -> Générer des scripts - ouvrira l' assistant de génération de scripts
après avoir choisi des objets dans l'option de script définie, cliquez sur le bouton Avancé
-> Définissez l'option 'Script à créer' sur true (souhaitez créer)
-> Définissez l'option " Script à supprimer" sur true (souhaitez supprimer)
-> Cochez la case pour sélectionner les objets qui souhaitent créer un script
-> Sélectionnez le choix pour écrire le script (Fichier, Nouvelle fenêtre, Presse-papiers)
Il inclut les objets dépendants par défaut (et supprimera la contrainte au début)
Exécutez le script
De cette façon, nous pouvons personnaliser notre script.
la source
Pour supprimer toutes les tables:
Bien entendu, cela supprimera toutes les contraintes, déclencheurs, etc., tout sauf les procédures stockées.
Pour les procédures stockées, je crains que vous n'ayez besoin d'une autre procédure stockée
master
.la source
stored procedures
etc.Je le ferais en deux déclarations:
DROP DATABASE ???
puis
CREATE DATABASE ???
la source
J'ai essayé certains des scripts ici, mais ils n'ont pas fonctionné pour moi, car j'ai mes tables dans les schémas. J'ai donc mis en place ce qui suit. Notez que ce script prend une liste de schémas, puis les supprime en séquence. Vous devez vous assurer que vous avez une commande complète dans vos schémas. S'il existe des dépendances circulaires, cela échouera.
la source
Sauvegardez une base de données complètement vide. Au lieu de supprimer tous les objets, restaurez simplement la sauvegarde.
la source
Voici ce que j'ai essayé:
Quelle que soit la sortie imprimée, il suffit de tout copier et coller dans la nouvelle requête et d'appuyer sur Exécuter. Cela supprimera toutes les tables.
la source
J'ai accidentellement exécuté un script d'initialisation db contre ma base de données master ce soir. Quoi qu'il en soit, je suis rapidement tombé sur ce fil. J'ai utilisé: exec sp_MSforeachtable 'DROP TABLE?' réponse, mais a dû l'exécuter plusieurs fois jusqu'à ce qu'il ne se soit pas produit d'erreur (dépendances.) Après cela, je suis tombé sur d'autres threads et j'ai reconstitué cela pour supprimer toutes les procédures et fonctions stockées.
la source
Essaye ça
la source
En plus de la réponse de @ Ivan, tous les types doivent être inclus
la source
Vous devez désactiver tout
triggers
et d'constraints
abord.Après cela, vous pouvez générer les scripts pour supprimer les objets comme
Exécutez les instructions générées.
la source
Cela me semble une caractéristique plutôt dangereuse. Si vous implémentez quelque chose comme ça, je m'assurerais de le sécuriser correctement de manière à ce que vous ne puissiez pas exécuter cela par accident.
Comme suggéré précédemment, vous pouvez créer vous-même une sorte de procédure stockée. Dans SQL Server 2005, vous pouvez consulter cette table système pour déterminer et rechercher les objets que vous souhaitez supprimer.
la source
Ici, j'ai trouvé une nouvelle requête pour supprimer tous les sp, fonctions et déclencheurs
la source
Pour ajouter à la réponse d'Ivan, j'ai également eu besoin de supprimer tous les types définis par l'utilisateur, j'ai donc ajouté ceci au script:
la source
Aucune déclaration ne peut être utilisée pour atteindre cet objectif.
Vous pouvez bien sûr vous créer un
stored procedure
que vous pourriez utiliser pour effectuer ces différentes tâches administratives.Vous pouvez ensuite exécuter la procédure à l'aide de cette seule instruction.
la source
la source
Pour supprimer tous les objets dans Oracle:
1) Dynamique
2) Statique
la source
essayez ceci avec sql2012 ou supérieur,
ce sera aider à supprimer tous les objets par le schéma sélectionné
la source
Une autre alternative serait:
la source
essaye ça....
la source