Beste Antwort
In SSMS :
Klicken Sie mit der rechten Maustaste auf die Datenbank.
Gehen Sie zu „Aufgaben“
Klicken Sie auf „Skripte generieren“
Wählen Sie im Abschnitt „Objekte auswählen“ die Option „Gesamte Datenbank und alle Datenbankobjekte skripten“
Klicken Sie im Abschnitt „Skriptoptionen festlegen“ auf die Schaltfläche „Erweitert“
Schalten Sie bei „Script DROP and CREATE“ „Script CREATE“ auf „Script DROP“ und drücken Sie OK.
Speichern Sie dann entweder in einer Datei, Zwischenablage oder einem neuen Abfragefenster.
Führen Sie das Skript aus.
Dadurch wird nun alles gelöscht, einschließlich der Datenbank. Stellen Sie sicher, dass Sie den Code für die Elemente entfernen, die nicht gelöscht werden sollen. Alternativ können Sie im Abschnitt „Objekte auswählen“ anstelle der Auswahl der gesamten Datenbank nur die Elemente auswählen, die Sie entfernen möchten.
Mit Hilfe des Skripts :
SET @Cursor = CURSOR FAST\_FORWARD FOR
SELECT DISTINCT sql = "ALTER TABLE [" + tc2.TABLE\_SCHEMA + "].[" + tc2.TABLE\_NAME + "] DROP [" + rc1.CONSTRAINT\_NAME + "];"
FROM INFORMATION\_SCHEMA.REFERENTIAL\_CONSTRAINTS rc1
LEFT JOIN INFORMATION\_SCHEMA.TABLE\_CONSTRAINTS tc2 ON tc2.CONSTRAINT\_NAME =rc1.CONSTRAINT\_NAME
OPEN @Cursor FETCH NEXT FROM @Cursor INTO @Sql
WHILE (@@FETCH\_STATUS = 0)
BEGIN
Exec sp\_executesql @Sql
FETCH NEXT FROM @Cursor INTO @Sql
END
CLOSE @Cursor DEALLOCATE @Cursor
GO
EXEC sp\_MSforeachtable "DROP TABLE ?"
GO
https://stackoverflow.com/questions/8439650/how-to-drop-all-tables-in-a-sql-server-database/43128914
Antwort
Dies ist eine meinungsbasierte Antwort von jemandem, der den aktuellen IT-Markt und die aktuellen IT-Technologien versteht und SQL Server sowie verschiedene andere Datenbanktechnologien für verwendet hat über ein Jahrzehnt: Die Zukunft von SQL Server wird von der Zukunft der Verwendung von SQL als Abfragesprache abhängen. Relationale Datenbankmanagementsysteme, wie wir sie kennen, haben sich in den letzten zwei Jahrzehnten nicht wirklich verändert, während sich fast jedes andere Thema im Bereich Computer verändert hat. Der Erfolg von SQL liegt in seiner Einfachheit und auf niedrigeren Abstraktionsebenen werden wir immer eine Technologie wie diese benötigen. Es gibt jedoch eine Handvoll Anforderungen, die SQL und RDBMS in ihrer aktuellen Form „einfach nicht“ bieten. Sie haben Probleme, wenn es um Datentypen mit Metadaten geht. Stellt dieses Datum beispielsweise den Geburtstag einer Person dar? Stellt dieser nvarchar (50) eine E-Mail-Adresse dar? Stellen diese beiden Werte einen Datumsbereich dar, in dem ein Element nicht größer als das andere sein sollte? SQL Server behandelt dies mit Triggern, aber es ist SO VIEL zeitaufwändige Arbeit erforderlich, um diese Art von Triggern zu implementieren, dass Unternehmen häufig die Arbeit überspringen und sich stattdessen auf Softwareschichten verlassen, um dieses Problem zu lösen. Dies führt zu einem Mangel an Organisation und Konsistenz während eines Projekts. Sie behandeln replikationsbasierte Anforderungen nicht abstrakt. Wenn beispielsweise zwei getrennte Systeme einen neuen Datensatz in einer Tabelle erstellen müssen, welcher neue IDENTITY-Schlüssel sollte generiert werden? Dieses Problem kann durch die Verwendung von zusammengesetzten Schlüsseln oder GUIDs oder auf eine Handvoll anderer Arten gelöst werden. Der SQL-Konsument muss sich jedoch über diese Komplexität Gedanken machen. Sie behandeln das bi-temporale Zeitmanagement nicht abstrahiert. Zum Beispiel, wenn Sie nachverfolgen müssen, was wir im Juli 2013 für die Wahrheit gehalten haben, aber Außerdem müssen korrigierte Daten über 2013 gespeichert werden, die wir erst 2016 kennengelernt haben. Die Erstellung eines Schemas zur Bewältigung dieses Problems und zur Aufrechterhaltung der referenziellen Integrität ist recht komplex. Es gibt bereits Vorschläge, wie dieses Problem einfacher zu lösen ist, die derzeitige Denkweise jedoch nicht lösen. Sie können ein „Modell“ Ihrer Daten nicht gut einbinden. Das physische Schema beschreibt einfache Dinge wie „This Boolean“ nicht gut Der Wert steht für wahr oder falsch. „oder“ Dieses Datum wird wahrscheinlich in den nächsten Monaten liegen. Verwenden Sie daher ein Kalendersteuerelement, bei dem dieses andere Datum Jahre in der Vergangenheit liegen wird. Verwenden Sie daher Dropdowns für MM / TT / JJJJ. “ . Aus diesen Systemen wurden zahlreiche „Business Intelligence“ – oder „Reporting“ -Tools entwickelt, um diese Funktionen bereitzustellen. Die meisten dieser Tools sind jedoch noch proprietär und ändern sich von Jahr zu Jahr, da eine großartige Lösung noch nicht allen zur Verfügung gestellt werden muss auf monopolistische Weise (so gut, dass es die Konkurrenz ausschaltet und seine eigenen Standards setzt). Sie behandeln nicht die akzeptierte Stalenität von Daten. Es gibt keine einfache Möglichkeit, anzugeben, wenn Sie nach Daten fragen, die ältere Daten auf einem Server in einem Cluster sind alt ist akzeptabel, wenn es schneller gefunden werden kann. Dies führt zu Leistungsproblemen und ist einer der Hauptgründe dafür, dass „NoSQL“ -Datenbanken aufgetaucht sind. Während zahlreiche „NoSQL-Technologien“ Lösungen für winzige Teile dieses Problems bieten, gibt es viele Probleme, die einfach nicht gelöst wurden. Beispielsweise funktionieren verteilte Systeme mit transaktionsbasierter Isolation nicht gut, ohne dass größere Leistungsprobleme auftreten.Es gibt Dinge, die wir kommunizieren könnten, wenn wir eine Frage zu unseren Daten stellen, z. B. wie alt sind Daten? Möchte ich benachrichtigt werden, wenn sich diese Daten aus irgendeinem Grund ändern? Ist es möglich, dass ich die Daten, nach denen ich frage, in naher Zukunft ändern möchte, oder ist dies einfach ein schreibgeschütztes Dokument ohne zukünftige Änderungsabsicht? Es gibt auch zahlreiche andere Probleme, aber den wichtigen Punkt Hier ist, dass die Zukunft von SQL Server von der Wirtschaft und der Verfügbarkeit und Umsetzung neuer Ideen bestimmt wird … Ich bin sicher, wir haben mindestens 5-8 Jahre Zeit, in denen SQL die beliebteste Art ist, eine Frage zu stellen Ihre Daten und zu verlangen, dass Ihre Daten geändert werden – aber es hat Mängel und dieser Bereich des Rechnens ist für eine „neue große Sache“ fällig. Fortschritte bei der Festplattengeschwindigkeit, der Festplattengröße für die Kosten, der RAM-Größe für die Kosten und wahrscheinlich vor allem bei der Idee, „Cloud Computing“ durch horizontale statt vertikale Skalierung zu verwenden, sind alles neue Variablen in der Datenwelt, mit der die Softwarearchitektur immer noch zu kämpfen hat aufholen. Die Zukunft von SQL Server ist: schrittweise, aber nachhaltige Umstellung auf eine effizientere Arbeitsweise mit unseren Daten. Es ist wahrscheinlich, dass sich der Name ändert und sich von SQL als Abfragesprache wegbewegt und zu einer leistungsfähigeren Sprache, mit der die Probleme, mit denen der moderne Softwarearchitekt konfrontiert ist, besser gelöst werden können.