Dieses Skript bereinigt alle Ansichten, SPS, Funktions-PKs, FKs und Tabellen.
/* 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
Ich verwende dieses Skript von Adam Anderson, das aktualisiert wurde, um Objekte in anderen Schemas als dbo zu unterstützen.
Quelle: ein Adam Anderson Blog-Beitrag
quelle
-- 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;
Das Beste ist " Skripte für Drop generieren ".
Wählen Sie Datenbank -> Rechtsklick -> Aufgaben -> Skripte generieren - wird der Assistent zum Generieren von Skripten geöffnet
nach Objekten im Set Scripting Option klicken Auswahl Erweiterte Schaltfläche
Es enthält standardmäßig abhängige Objekte (und lässt zunächst die Einschränkung fallen).
Führen Sie das Skript aus
Auf diese Weise können wir unser Skript anpassen.
quelle
So löschen Sie alle Tabellen:
Dadurch werden natürlich alle Einschränkungen, Trigger usw. gelöscht, alles außer den gespeicherten Prozeduren.
Ich fürchte, für die gespeicherten Prozeduren benötigen Sie eine andere gespeicherte Prozedur, die in gespeichert ist
master
.quelle
stored procedures
Ich würde es in zwei Aussagen tun:
DROP DATABASE ???
und dann
CREATE DATABASE ???
quelle
Ich habe hier einige Skripte ausprobiert, aber sie haben bei mir nicht funktioniert, da ich meine Tabellen in Schemata habe. Also habe ich folgendes zusammengestellt. Beachten Sie, dass dieses Skript eine Liste von Schemas erstellt und diese dann nacheinander löscht. Sie müssen sicherstellen, dass Ihre Schemas eine vollständige Bestellung enthalten. Wenn es zirkuläre Abhängigkeiten gibt, schlägt dies fehl.
quelle
Sichern Sie eine vollständig leere Datenbank. Anstatt alle Objekte zu löschen, stellen Sie einfach die Sicherung wieder her.
quelle
Folgendes habe ich versucht:
Was auch immer die Ausgabe sein mag, kopieren Sie einfach alle und fügen Sie eine neue Abfrage ein und drücken Sie Ausführen. Dadurch werden alle Tabellen gelöscht.
quelle
Ich habe heute Abend versehentlich ein DB-Init-Skript für meine Master-Datenbank ausgeführt. Jedenfalls bin ich schnell auf diesen Thread gestoßen. Ich habe Folgendes verwendet: exec sp_MSforeachtable 'DROP TABLE?' antworte, musste es aber mehrmals ausführen, bis es keinen Fehler mehr gab (Abhängigkeiten). Danach bin ich auf einige andere Threads gestoßen und habe diese zusammengesetzt, um alle gespeicherten Prozeduren und Funktionen zu löschen.
quelle
Versuche dies
quelle
Zusätzlich zu @ Iwans Antwort müssen alle Typen enthalten sein
quelle
Sie müssen alle
triggers
undconstraints
zuerst deaktivieren .Danach können Sie die Skripte zum Löschen der Objekte als generieren
Führen Sie die generierten Anweisungen aus.
quelle
Scheint mir ein ziemlich gefährliches Feature zu sein. Wenn Sie so etwas implementieren würden, würde ich sicherstellen, dass es so gesichert ist, dass Sie es nicht pro Unfall ausführen können.
Wie bereits vorgeschlagen, können Sie selbst eine gespeicherte Prozedur erstellen. In SQL Server 2005 können Sie diese Systemtabelle durchsuchen, um die Objekte zu ermitteln und zu finden, die Sie löschen möchten.
quelle
Hier habe ich eine neue Abfrage gefunden, um alle SP, Funktionen und Trigger zu löschen
quelle
Um Iwans Antwort zu ergänzen, musste ich auch alle benutzerdefinierten Typen löschen, also habe ich dies dem Skript hinzugefügt:
quelle
Es gibt keine einzige Aussage, mit der dieses Ziel erreicht werden kann.
Sie können sich natürlich eine erstellen
stored procedure
, mit der Sie diese verschiedenen Verwaltungsaufgaben ausführen können.Sie können die Prozedur dann mit dieser einzelnen Anweisung ausführen.
quelle
quelle
So entfernen Sie alle Objekte im Orakel:
1) Dynamisch
2) Statisch
quelle
Versuchen Sie dies mit sql2012 oder höher.
Dies ist hilfreich, um alle Objekte nach ausgewähltem Schema zu löschen
quelle
Eine andere Alternative wäre:
quelle
Versuche dies....
quelle