3 Stimmen

SQL-Skript zum Löschen von Datenbanktabellen

Ich muss eine Sicherungskopie einer SQL Server-Datenbank mit einer Vielzahl von Daten erstellen und in eine andere Umgebung importieren, um sie zu aktualisieren und zu testen. Da ich nicht an den Daten interessiert bin, möchte ich nur das Schema auf meinem anderen Server neu erstellen. Es gibt eine Option namens "Skript generieren", aber es treten Fehler auf, wenn ich sie auf dem Zielserver ausführe.

Neugierig, wenn jemand versucht, ein SQL-Skript zu schreiben, die durch alle Tabellen in der db laufen würde und die Zeilen zu löschen, damit ich nur das Schema-Backup als .bak-Datei erstellen könnte und es in einem anderen Server wiederherstellen.

3voto

Mark Byers Punkte 761508

Red Gate produziert ein Produkt namens Sql-Vergleich die Sie verwenden können, um Ihr Schema von einer Sql Server-Datenbank mit einer anderen zu synchronisieren. Das ist wahrscheinlich viel einfacher, als selbst Skripte zu schreiben, und es ermöglicht Ihnen, Änderungen einfach zu übertragen, wenn die beiden Datenbanken später nicht mehr synchron sind. Es ist kein kostenloses Produkt, aber Sie können es in der 14-tägigen Testphase kostenlos nutzen.

3voto

Don Dickinson Punkte 6120

Seien Sie vorsichtig damit, aber so geht es. Es leert alle Tabellen in Ihrer Datenbank.

-- disable referential integrity
EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'

-- print table name
EXEC sp_MSForEachTable 'truncate table ?'

-- enable referential integrity again
EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'

1voto

systempuntoout Punkte 68725

Das müssen Sie:

  1. Deaktivieren Sie alle Beschränkungen für die Tabellen
  2. Tabellen abschneiden
  3. Zwänge neu erstellen

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X