it-swarm.com.de

Downgrade von SQL Server 2008 auf 2005

Datenbankdateien, die mit SQL 2008 erstellt wurden, sind nicht mit 2005 kompatibel. Gibt es eine Problemumgehung?

32
Sevki

Keine Tools von Drittanbietern erforderlich. SQL Server 2008 Management Studio bot uns ein sehr leistungsfähiges Tool zum Herunterkonvertieren einer Datenbank, da dem Assistenten "Skriptdatenbank" die Option "Skriptdaten" hinzugefügt wurde.

Klicken Sie einfach mit der rechten Maustaste auf die Datenbank in SQL2008 SSMS, gehen Sie zu Aufgaben und dann zu "Skripte generieren".

Gehen Sie durch den Assistenten und stellen Sie sicher, dass Sie unter "Tabellen-/Ansichtsoptionen" die Option "Wahr" für "Skriptdaten" auswählen. Wählen Sie alle Objekte aus und führen Sie das Skript aus, das auf dem 2005-Server erstellt wurde. (Bitte beachten Sie, dass das erstellte Skript massiv sein kann, wenn die ursprüngliche Datenbank sehr groß ist!)

Beachten Sie, dass Sie den Assistenten sogar auf einem SQL2005-Server ausführen können, um eine SQL2005-Datenbank in SQL2000 herunterzukonvertieren (Sie müssten natürlich die 2008-Tools auf Ihrer Workstation installieren).

16
BradC

Sie können die Daten von einer SQL Server-Instanz auf eine andere Instanz übertragen. Dies wäre der schnellste Weg, um die Daten von einer Version in eine andere zu kopieren. Je nach Datenvolumen kann dies lange dauern.

16

Es gibt leider keine direkte Möglichkeit, eine Datenbank vom Format 2008 auf das Format 2005 herunterzustufen.

Die Art und Weise, wie ich dies in der Vergangenheit getan habe (tatsächlich mit älteren Versionen von SQL Server, aber der Prozess wird der gleiche sein) ist:

  1. Stellen Sie die Datenbank auf einer SQL2008-Instanz wieder her, falls dies noch nicht geschehen ist
  2. Erstellen Sie eine leere Datenbank mit den richtigen Strukturen (Tabellen, Indizes, Einschränkungen, Ansichten, Prozesse, Trigger, ...) auf einer SQL2005-Instanz. Hoffentlich können Sie dies aus Ihrer vorhandenen Erstellungsprozedur und/oder Ihrem Quellcode heraus tun. Andernfalls können Sie mit SQL Server Manager Skripts für alles in der Datenbank 2005 erstellen und das Ergebnis in der Instanz 2008 auf einem leeren Skript ausführen.
  3. Stellen Sie sicher, dass sich die beiden Instanzen sehen können (d. H. Es gibt keine Firewalls, die Verbindungen blockieren, wenn sich die Instanzen auf verschiedenen Computern befinden), und verknüpfen Sie sie mit sp_addlinkedserver .
  4. Kopieren Sie alle Daten von einer Datenbank in die andere. Wenn es keine Fremdschlüsseleinschränkungen und ähnliche Probleme bei Triggern gibt, über die Sie sich Sorgen machen müssen, können Sie die DBs einfach miteinander verknüpfen und durch die Liste der Tabellen navigieren (sie aus sys.objects auswählen) und ausführen
    INSERT destinationserver.destinationdb.schema.table SELECT * FROM sourcedb.schema.table
    (oder INSERT schema.table SELECT * FROM sourceserver.sourcedb.schema.table wenn Sie die Instanzen so verknüpft haben)
    für jede Tabelle. Wenn Sie Einschränkungen und Auslöser für die Konsistenz zwischen Tabellen haben, müssen Sie die Reihenfolge dieser Operationen natürlich etwas klüger gestalten, insbesondere wenn Sie zyklische Einschränkungen wie eine Tabelle mit einer auf sich selbst basierenden Einschränkung (eine Haltehierarchie) haben Daten als mögliches Beispiel).

Es kann effizienter sein, die Daten zuerst zu kopieren und nach Schritt 3 alle anderen Strukturen (Indizes, Prozesse, Trigger, ...) hinzuzufügen. Dadurch werden Probleme beim Einfügen von Zeilen durch Einfügungen und Trigger vermieden und die Indizes am erstellt end sollte theoretisch schneller sein als das Erstellen, da alle Daten hinzugefügt werden. Wenn Sie jedoch Clustered-Indizes für Ihre Tabellen haben, erstellen Sie diese vor dem Hinzufügen der Daten, da sie nachträglich nicht schneller erstellt werden können.

Dies alles setzt natürlich voraus, dass keines Ihrer Objekte SQL 2008-spezifische Funktionen verwendet. Wenn dies der Fall ist, werden Sie diese Probleme hoffentlich herausfinden und beheben, wenn beim erneuten Erstellen des Schemas Fehler auftreten. Wenn einer Ihrer Codes auf offiziell undefiniertem Verhalten beruht, das sich zwischen den SQL Server-Versionen geändert hat, können einige subtilere und schwer fassbare Fehler auftreten, die später aufgespürt und behoben werden müssen.

15
David Spillett

Ich sah mich einer ähnlichen Situation gegenüber und verwendete Database Publishing Wizard, um Schema und Daten für SQL Server 2005 aus der SQL Server 2008-Datenbank zu skripten.

SQL Server Hosting Web Service (und Toolkit)

Datenbankveröffentlichungsassistent

7
CoderHawk

Sie müssen zuerst die Datenbank skripten und sicherstellen, dass Sie in der Version den Typ angeben, auf den Sie ein Downgrade durchführen möchten. Und wenn Sie die Daten von der höheren Version in die niedrigere Version kopieren, ist der SQL-Datenvergleich genau das Richtige für Sie.

Viel Glück!

1
Mbongeni