Wir wurden gebeten, von SQL Server 2008 R2 auf 2012 umzusteigen. Die Installation wurde vor einigen Stunden abgeschlossen. Seitdem habe ich versucht, Datenbanken von 2008 bis 2012 anzuhängen.
Es scheint keine Wirkung zu haben. Fehlermeldungen unten:
Das Anhängen der Datenbank ist für den Server 'Development \ SQLSERVER' fehlgeschlagen. (Microsoft.SqlServer.Smo) Die
Datenbank 'PS_EmpData' kann nicht aktualisiert werden, da ihre Nicht-Release-Version (539) von dieser Version von SQL Server nicht unterstützt wird. Sie können keine Datenbank öffnen, die mit dieser Version von sqlservr.exe nicht kompatibel ist. Sie müssen die Datenbank neu erstellen.
Ich meine, diese Tabelle ist eine ziemlich große Datenbank; und die Zeit, die benötigt würde, um alle Einsätze neu zu erstellen, wäre unwirklich. Wir arbeiten noch mit unserem SQL 2008 R2 für die Produktion, aber der Entwicklungsprozess läuft 2012.
Meine allgemeine Frage lautet: Müssen wir die Datenbank neu erstellen, um 2012 verwenden zu können, oder gibt es eine Problemumgehung?
quelle
Die Dinge passen nicht zusammen. Entweder stammt die Datenbank aus SQL 2008, und dann ist es Version 655 (oder 661, wenn es sich um SQL Server 2008 R2 handelt), oder die Datenbank ist Version 539, bei der es sich im Grunde um eine antidiluvianische Version handelt. Ich würde viel lieber glauben, dass das Feld für die Datenbankversion in der Datei tatsächlich beschädigt ist (z. B. wurde es in der Dateikopie geändert). Stellen Sie sicher, dass die Datei mit der Quelldatei Ihrer SQL 2008-Instanz identisch ist.
quelle
Die interne Datenbankversion 539 stammt aus SQL 2000. 2012 wird wahrscheinlich nicht direkt von dieser Version unterstützt. Da Sie jedoch einen 2008 R2-Server haben, haben Sie wahrscheinlich einige Optionen, um diese Datenbank zuerst auf diesem Server zu aktualisieren.
Wenn auf dem 2008 R2-Server genügend Speicherplatz für eine weitere Kopie der Datenbank vorhanden ist, holen Sie sich dort eine, versuchen Sie, die Kompatibilitätsstufe auf 100 (2008 R2) festzulegen, trennen Sie sie und fügen Sie sie erneut hinzu. Das Upgrade der internen Datenbankversion erfolgt in der Regel während des Anhängens (oder einer Wiederherstellung).
Ich habe zufällig 2000 / 2008R2 / 2012 bereitgestellt, daher werde ich einen kurzen Test durchführen und sicherstellen, dass die oben genannten Funktionen funktionieren.
Bearbeiten: Durch Erstellen eines Backups von meinem 2000-Server und Wiederherstellen auf dem 2008 R2-Server wurde die interne Datenbankversion automatisch auf 661 (2008 R2) aktualisiert, obwohl die Kompatibilitätsstufe auf 80 (SQL 2000) festgelegt ist. Ich bin mir nicht sicher, wie Sie auf 2008 R2 zu einer v539-Datenbank gekommen sind, aber versuchen Sie, eine Kopie davon anzuhängen / zu entfernen, nachdem Sie die Kompatibilitätsstufe geändert haben, und überprüfen Sie die interne Version mit (aus dem Blog-Beitrag von Jonathan Kehayias hier ):
Irgendwo in der Ausgabe sollte ein Indikator für die interne Versionsnummer sein:
quelle