So löschen Sie alle Tabellen aus der db? Nicht delete from sys.Tabellen
Wie kann ich diese Abfrage auf welchem Weg auch immer:
delete from sys.tables where is_ms_shipped = 0
Was passiert ist, ich ausgeführt eine sehr große Abfrage und ich habe vergessen zu setzen USE
Richtlinie über die Spitze, jetzt habe ich eine Unmenge Tabellen auf meine master-db, und nicht wollen, löschen Sie eins nach dem anderen.
UPDATE: Es ist eine völlig neue Datenbank, so dass ich don ' T haben zu kümmern, alle bisherigen Daten, das endgültige Ergebnis ich erreichen möchte, ist ein reset der master-db auf die Werkseinstellungen Versand.
Die
Ja, ich erkannte, dass. Ich war auf der Suche nach einer Möglichkeit, um meine änderungen aus.
sys.*
Objekte sind system-Katalog Ansichten, die Ihnen erlauben, um die Abfrage - aber nicht manipulieren - Ansichten der Objekte in Ihrer Datenbank. Zum ERSTELLEN oder löschen von Objekten, verwenden Sie entsprechende SQL-Befehle.Ja, ich erkannte, dass. Ich war auf der Suche nach einer Möglichkeit, um meine änderungen aus.
InformationsquelleAutor Shimmy | 2011-01-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist dies eine einmalige Ausgabe, verwenden Sie SQL Server Management Studio löschen der Tabellen.
Wenn müssen Sie ein Skript ausführen sehr, sehr gezielt verwenden:
Siehe aktualisierte Antwort. Dies löscht alle Benutzer-Tabellen in der Datenbank, es sei denn, Fremdschlüssel müssen zuerst gelöscht werden. Es gilt jedoch nicht, entfernen Sie die Benutzer, Synonyme, etc.
Lesen Sie auch die Abfrage in meiner Frage, die ich nicht wollen, löschen Sie ALLE Tabellen, ich möchte nur das löschen von Tabellen, dass ich versehentlich Hinzugefügt, nicht die Tabellen, die verschickt wurden, mit der installation.
Prozesse für jedes Benutzer Tabellen. Es nicht-system-Tabellen.
Nicht Sie führen Sie einfach das Skript in einer Schleife, bis Sie es nicht mehr Tabellen gibt?
WHILE EXISTS(SELECT * FROM sys.tables where is_ms_shipped = 0) EXEC sp_MSforeachtable 'DROP TABLE ?'
InformationsquelleAutor Phil Hunt
Eine Methode, die ich in der Vergangenheit verwendet habe, das ist ziemlich einfach und relativ idiotensicher ist das system Abfragen /Tabellen /Infos-schema (abhängig von dem genauen Anforderungen) und ausgeben der Liste der Befehle, die ich ausführen möchten, wie die Ergebnisse einstellen. Überprüfen Sie, dass copy & paste, laufen - schnell & einfach für ein one-time-job, und weil Sie immer noch manuell die Taste drücken, auf die zerstörerische bisschen, es ist (IMHO), schwieriger trash Zeug durch Fehler.
Beispiel:
InformationsquelleAutor eftpotrm
Keine backups? 🙂
Ein Ansatz sein kann, um zu erstellen Sie eine Datenbank-Projekt in Visual Studio mit einer ersten Datenbank Importieren. Dann löschen Sie die Tabellen und synchronisieren Sie das Projekt zurück in die Datenbank. Sie können die Löschungen en masse mit diesem Ansatz, während die "buffered" mit einem commit-phase und UI.
Ich bin ziemlich bestimmte die obigen Ansatz kann verwendet werden, um Pflege der Beziehungen zwischen den Tabellen, wie gut (obwohl ich nicht versucht in die "master" - Raum). Ich würde auch empfehlen die Verwendung ein VS-DB-Projekt (oder einem anderen Datenbank-management-tool, mit dem schema vergleichen und Synchrounisierung) Leben leichter zu machen in der Zukunft, sowie die version-in der Lage (z.B. SCM) die schema-change-tracking.
Oh, und was auch immer getan haben, erstellen Sie bitte zuerst eine Sicherungskopie. Wenn nichts anderes, es ist ein gutes training 🙂
InformationsquelleAutor
Nicht sehr elegant, aber da dies eine einmalige Aufgabe.
Funktioniert gut auf diesem einfachen test (clearing
a
auf der zweiten Schleife nach dem scheitern im ersten Versuch und Verfahren die Weiterreise zu löschenb
)InformationsquelleAutor Martin Smith
Einfachste und kürzeste Weg, den ich Tat, war dies:
Wie Sie die Neuerstellung der Systemdatenbanken in SQL Server 2008
Das problem mit allen anderen Antworten hier ist, dass es nicht funktioniert, da gibt es ähnliche Tische und Sie weigert sich zu führen.
Dieser, nicht nur das es funktioniert, aber eigentlich ist das, was ich Suche: "Reset to factory defaults" wie bereits in der Frage.
Auch das wird man alles löschen, nicht nur Tabellen.
InformationsquelleAutor Shimmy
Dieser code könnte besser sein, aber ich habe versucht, vorsichtig zu sein, als ich es schrieb. Ich denke, es ist einfach zu leicht zu zwicken getestet werden, bevor Sie verpflichten sich, löschen Sie Ihre Tabellen.
InformationsquelleAutor Hating Ohio
Habe ich etwas wirklich ähnlich, und was ich Wunde zu tun, der mit den Aufgaben--> script-Datenbank zu nur-Skript-Tropfen für alle Datenbank-Objekte die ursprünglich vorgesehene Datenbank. Bedeutung der Datenbank war ich laufen soll, die Riesen-Skript auf, das ich führen Sie es auf. Werden Sie sicher, dass Sie, WENN Vorhanden, in der erweiterte Optionen, und führen Sie dann das Skript gegen den Meister und BAM, löscht alles, was existiert in der ursprünglichen Zieldatenbank, die gibt es auch in der master -, verlassen die Unterschiede, die die original-master-Elemente.
InformationsquelleAutor Melanie