it-swarm.com.de

Die Datenbank kann nicht geöffnet werden, da es sich um Version 851 handelt. Dieser Server unterstützt die Version 782 und frühere Versionen. Ein Downgrade-Pfad wird nicht unterstützt

Ich versuche, eine Datenbankdatei in SQL Server anzuhängen. Ich bekomme den untenstehenden Fehler. Der gleiche Fehler, den ich beim Versuch bekomme, eine Datenbank aus Visual Studio anzuhängen. Ich verwende Visual Studio 2013 und SQL Server 2014 Management Studio.

Meine Verbindungszeichenfolge:

<add name="Sample"  
     connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\M\Desktop\SampleApplication1\App_Data\Sample.mdf;Initial Catalog=SampleDBContext;Integrated Security=True;" 
     providerName="System.Data.SqlClient"/>

Error:

Die Datenbank 'sample' kann nicht geöffnet werden, da es sich um Version 851 handelt. Dieser Server unterstützt Version 782 und frühere Versionen. Ein Downgrade-Pfad wird nicht unterstützt. Neue Datenbank 'Sample' konnte nicht geöffnet werden. CREATE DATABASE wird abgebrochen.

 enter image description here

hier ist die Standardinstanz von SQL Server in Visual Studio festgelegt.

 enter image description here

12

Sie können NICHT tun - Sie können eine Datenbank nicht von einer neueren Version von SQL Server bis zu einer älteren Version anfügen/trennen oder sichern/wiederherstellen - die internen Dateistrukturen sind auch einfach anders, um die Rückwärtskompatibilität zu unterstützen. Ihre Datenbank stammt offensichtlich aus einer SQL Server 2016-Vorabversion (interne Version: 852), während die Engine, mit der Sie sie verbinden möchten, SQL Server 2014 (interne Version: 782) ist.

Sie können dieses Problem entweder durch umgehen

  • wenn Sie auf allen Ihren Computern dieselbe Version von SQL Server verwenden, können Sie Datenbanken zwischen Instanzen problemlos sichern/wiederherstellen

  • andernfalls können Sie die Datenbankscripts sowohl für die Struktur (Tabellen, Ansichten, gespeicherte Prozeduren usw.) als auch für den Inhalt (die in den Tabellen enthaltenen Daten) entweder in SQL Server Management Studio (Tasks > Generate Scripts) oder mit einem Tool eines Drittanbieters erstellen

  • sie können auch ein Drittanbieter-Tool wie SQL Compare und SQL Data Compare von Red-Gate verwenden, um zwischen Quelle und Ziel zu "differenzieren", aus diesen Unterschieden Aktualisierungsskripts zu generieren und Führen Sie dann diese Skripts auf der Zielplattform aus. Dies funktioniert in verschiedenen SQL Server-Versionen.

17
marc_s

Ich hatte dieses Problem, als ich einem alten Pluralsight MVC4-Tutorial folgte

Der Kurs bat mich, Version 11.0 zu verwenden, aber ich hatte eine 2015-Version. Ich öffnete den SQL Server Object Explorer, schaute mir die verschiedenen Versionen von LocalDB an und griff nach dem Namen derjenigen, in der sich meine Datenbank befand (rechte Maustaste "Umbenennen").

 enter image description here

Ich habe den Namen dann in das Fenster Verbindung hinzufügen unter Servername eingefügt. Klicken Sie auf Aktualisieren, und voila, da war es. Hoffe, das hilft jedem da draußen.

 enter image description here

0
megamaiku

Dies Microsoft Link kann Ihr Problem beheben, wenn Sie Visual Studio 2015 noch ausführen und dieser Fehler angezeigt wird - die obige Antwort ist Teil der Antwort. (megamaiku) Die Antwort "Skripte generieren" von Mark_S funktioniert, vorausgesetzt, Sie haben keine Probleme beim Mounten/Zugreifen auf die Datenbank. Wenn ich mich recht erinnere, ist SQL Compare ziemlich teuer, aber das ist auch eine großartige Lösung, vorausgesetzt, Sie können die von Ihrer Visual Studio-Anwendung erstellte Datenbank bereitstellen.
Ein ähnliches Problem tritt bei Visual Studio 2017 und SQL Server 2017 auf, außer dass 852/856 als Versionsproblem angezeigt wird.

Ändern Sie nach dem Verschieben der Datenbank die Datei "web.config connectionString" entsprechend Ihrem Server. (localdb)\MSSQLLocalDB oder möglicherweise localhost, je nachdem, was Sie ausführen (SQL 2016/2017/2019).

<add name="DefaultConnection"
     connectionString="Data Source=(localdb)\MSSQLLocalDB;myDB.mdf;Initial Catalog=MyDBName;Integrated Security=True"
     providerName="System.Data.SqlClient"/>

OR

<add name="DefaultConnection"
     connectionString="Data Source=localhost;myDB.mdf;Initial Catalog=MyDBName;Integrated Security=True"
     providerName="System.Data.SqlClient"/>

In einem alten Artikel wird erklärt, wie Sie die Teile einzeln aus der Datenbank abrufen können. Wenn Sie Glück haben und es immer noch funktioniert (es ist ein Jahrzehnt her - trennen Sie die Teile und fügen Sie sie dann wieder zusammen), können Sie möglicherweise die Teile abrufen Sie benötigen - eine neuere Version, die auf eine ältere Version zurückgesetzt wurde. Ich kann keinen Verweis auf den Trick finden, aber anstatt Ihre gesamte Datenbank zu skripten, gibt es eine Möglichkeit zum Zurückschreiben, indem der Header wiederhergestellt wird (nur der Header wird wiederhergestellt). Sobald der Header auf Ihrem Server vorhanden ist, werden die Berechtigungen und so weiter stimmen überein, können Sie diese Datenbank aus der neueren Sicherung wiederherstellen.
Das Erzeuge-Skript ist jedoch weniger verworren und populärer.

0
Jamie