SQL Vollständig leere Datenbank

8

Ich schreibe ein Installationsskript, das alle Tabellen, gespeicherten Prozeduren, Ansichten, Volltextindizes, Benutzer usw. installiert.

Es funktioniert alles, wenn der Benutzer über alle richtigen Berechtigungen verfügt und das Skript von Anfang bis Ende ausgeführt wird. Wenn das Skript jedoch irgendwo auf halbem Wege aussetzt, kann es nicht einfach erneut ausgeführt werden.

Um dies zu erreichen, möchte ich die Datenbank grundsätzlich in einen "brandneuen" Zustand zurückversetzen, in dem sie nichts hat.

Mir ist klar, wie man jede Tabelle / sp / view selbst löscht, aber ich suche nach einer allgemeineren Methode, um die Datenbank zurückzusetzen.

Ich muss auch in der Lage sein, Volltextkataloge und Benutzer zu löschen.

Danke für jede Hilfe.

Ausführen von SQL Server 2005

    
corymathews 09.07.2009, 16:39
quelle

8 Antworten

6

Klingt wie ein Job für Drop-Datenbank :

%Vor%     
David Hedlund 09.07.2009, 16:47
quelle
7

Können Sie das gesamte Skript innerhalb einer Transaktion ausführen und dann ein Rollback aufrufen, wenn es fehlschlägt?

Eine CREATE TABLE kann genauso einfach zurückgesetzt werden wie ein INSERT / UPDATE.

    
Robin Day 09.07.2009 16:46
quelle
2

Brandneu, enthält nichts? Löschen Sie die Datenbank und erstellen Sie sie erneut, wenn Sie dazu berechtigt sind.

    
David M 09.07.2009 16:48
quelle
0

Ich bin mir nicht sicher, ob Sie das suchen, aber für jedes Objekt könnten Sie testen, ob es existiert, bevor Sie es erstellen. Dann könnten Sie das Skript erneut ausführen, wenn es in der Mitte fehlschlägt.

%Vor%

...

    
Jonathan 09.07.2009 16:50
quelle
0

Red Gate's SQL Compare wird es für Sie tun, es ist ein großartiges Werkzeug.

    
A-K 09.07.2009 17:06
quelle
0

Wenn Sie Ihren Skriptprozess pro Objekt automatisieren, sollten Sie in der Lage sein, den gesamten Prozess in eine Transaktion zu integrieren und Fehlerbehandlung für jede DDL-Anweisung bereitzustellen. Dies funktioniert auch beim Anwenden von Schema-Updates. Bitte beachten Sie, dass dies auf Upgrade-Skripten basiert, die Red-Gate SQL Compare generiert.

Kopfzeile:

%Vor%

Fußzeile:

%Vor%

Wrapper (für jedes Datenbankobjekt):

%Vor%     
ramnik 09.07.2009 16:58
quelle
-1

Sie können das gesamte Skript in einer einzigen Transaktion ausführen, so dass Sie es jederzeit zurücksetzen können.

Zweite Option - vor der Installation immer ein Backup erstellen. Wenn dies fehlschlägt, stellen Sie die Datenbank von der Sicherung wieder her

    
Bogdan_Ch 09.07.2009 16:48
quelle
-1

DB löschen und neu erstellen:

%Vor%     
Rod 03.12.2014 22:45
quelle

Tags und Links