Datenbankdateien, die mit SQL 2008 erstellt wurden, sind nicht mit 2005 kompatibel. Gibt es eine Problemumgehung?
32
Datenbankdateien, die mit SQL 2008 erstellt wurden, sind nicht mit 2005 kompatibel. Gibt es eine Problemumgehung?
Antworten:
Keine Tools von Drittanbietern erforderlich. Mit SQL Server 2008 Management Studio haben wir ein sehr leistungsfähiges Tool zum Downkonvertieren einer Datenbank erhalten, da dem Assistenten "Skriptdaten" die Option "Skriptdaten" hinzugefügt wurde.
Klicken Sie mit der rechten Maustaste auf die Datenbank in SQL2008 SSMS und gehen Sie zu Aufgaben und dann zu "Skripten generieren".
Gehen Sie durch den Assistenten und stellen Sie sicher, dass Sie "True" für "Script Data" unter den Tabellen- / Ansichtsoptionen 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 Skript erstellt werden könnte massiv , wenn die ursprüngliche Datenbank ist sehr groß!)
Beachten Sie, dass Sie den Assistenten sogar auf einem SQL2005-Server ausführen können, um eine SQL2005-Datenbank auf SQL2000 herunter zu konvertieren (die 2008-Tools müssten natürlich auf Ihrer Workstation installiert sein).
quelle
Sie könnten die Daten von einer SQL Server-Instanz zu einer anderen Instanz BCP. Dies wäre der schnellste Weg, um die Daten von einer Version in eine andere zu kopieren. Abhängig vom Datenvolumen kann dies lange dauern.
quelle
Es gibt leider keinen direkten Weg, wie ich weiß, eine DB vom Format 2008 auf das Format 2005 herunterzustufen.
So habe ich das in der Vergangenheit gemacht (tatsächlich mit älteren Versionen von SQL Server, aber der Prozess wird der gleiche sein):
INSERT destinationserver.destinationdb.schema.table SELECT * FROM sourcedb.schema.table
(oder
INSERT schema.table SELECT * FROM sourceserver.sourcedb.schema.table
die Instanzen auf diese Weise verknüpft haben )für jeden Tisch. Wenn Sie Einschränkungen und Trigger haben, die die Konsistenz zwischen Tabellen erzwingen, müssen Sie die Reihenfolge dieser Operationen natürlich etwas genauer festlegen, insbesondere wenn Sie zyklische Einschränkungen haben, wie z. B. eine Tabelle mit einer auf sich selbst basierenden Einschränkung (eine Holding-Hierarchie) Daten, als mögliches Beispiel).
Es ist möglicherweise effizienter, nach Schritt 3 nur die Daten zu kopieren und alle anderen Strukturen (Indizes, Procs, Trigger usw.) hinzuzufügen. Auf diese Weise werden Probleme beim Einfügen von Zeilen vermieden, die durch Einschränkungen und Trigger verursacht werden, und die Indizes werden am erstellt end sollte theoretisch schneller sein, als sie zu 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 zu erstellen wären.
Dies alles setzt natürlich voraus, dass keines Ihrer Objekte SQL 2008-spezifische Features verwendet. Wenn dies der Fall ist, werden Sie hoffentlich solche Fehler beim erneuten Erstellen des Schemas herausfinden und beheben. Wenn sich einer Ihrer Codes auf offiziell undefiniertes Verhalten stützt, das sich zwischen den SQL Server-Versionen geändert hat, kann es sein, dass Sie subtilere und schwer fassbare Fehler finden und später ausbügeln müssen.
quelle
Ich sah mich einer ähnlichen Situation gegenüber und verwendete den Assistenten zum Veröffentlichen von Datenbanken, um ein Skript für das Schema und die Daten für SQL Server 2005 aus der SQL Server 2008-Datenbank zu erstellen.
SQL Server Hosting-Webdienst (und Toolkit)
Assistent zum Veröffentlichen von Datenbanken
quelle
Sie müssen zuerst ein Skript für die Datenbank erstellen und sicherstellen, dass Sie für die Version den Typ angeben, auf den Sie eine Herabstufung durchführen möchten. Und um die Daten von der höheren Version in die niedrigere Version zu kopieren, erledigen Sie mit SQL Data compare den Trick für Sie.
Viel Glück!
quelle