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

84

Ich habe eine Beispieldatenbank mit SQL Server 2014 Express erstellt und meiner Windows Form-Lösung hinzugefügt. Wenn Sie zum Öffnen darauf doppelklicken, wird dieser Fehler angezeigt.

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

Ich verwende Visual Studio 2013. Ich verstehe wirklich nicht, dass ich die beiden neuesten Versionen von Microsoft-Produkten verwende und sie nicht kompatibel sind. Vermisse ich etwas Wie kann ich diese Datenbank öffnen?

Geben Sie hier die Bildbeschreibung ein

Omer K.
quelle
2
Sie müssen Visual Studio auf Ihre SQL Server 2014-Instanz verweisen. Es ist nicht so, dass die beiden nicht kompatibel sind, sondern dass Visual Studio standardmäßig seine 2012-Instanz verwendet und Datenbanken aus dem Jahr 2014 nicht unterstützt. Der Grund, warum 2012 standardmäßig verwendet wird: SQL Server 2014 war nicht vorhanden, als Visual Studio 2013 wurde veröffentlicht.
Aaron Bertrand
@ AaronBertrand danke. Wie kann ich VS auf meinen SQL Server 2014 verweisen? Gibt es einen Link, der als Leitfaden dient?
Omer K
5
Sicher, hören Sie einfach auf, Visual Studio (und Ihre Anwendung) auf eine Datei zu richten (mit AttachDBFileName). Angenommen, die Datenbank ist bereits an Ihre lokale .\SQLEXPRESSInstanz angehängt , ändern Sie einfach die Verbindungszeichenfolgen, um auf diesen Server ( Data Source=.\SQLEXPRESS;Initial Catalog=OMERDENEME;...) zu verweisen, und beenden Sie die VerwendungAttachDBFileName .
Aaron Bertrand

Antworten:

141

Versuchen Sie , Tools> Options> Database Tools> Data Connections> SQL Server Instance Name.

Der Standardwert für VS2013 ist (LocalDB)\v11.0.

Das Ändern auf (LocalDB)\MSSQLLocalDBzum Beispiel scheint zu funktionieren - kein Fehler mehr in Version 782.

user1723033
quelle
2
Ich hatte ähnliche Probleme mit Visual Studio 2013 Express für Web und Entity Framework 6. EF hat die MDF-Datei automatisch erstellt, konnte jedoch bei Verwendung keine Verbindung über VS herstellen (LocalDB)\v11.0. Wenn Sie den Servernamen so ändern, (LocalDB)\MSSQLLocalDBdass dieser Fehler bezüglich der Versionsnummer behoben wird.
Wrschneider
3
Ich musste auch die Verbindungszeichenfolge in der Datei web.config in (LocalDB) \ MSSQLLocalDB
Roger Harvest
11
In VS Studio 2015 lautet der Standardwert (LocalDB) \ MSSQLLocalDB. Also, das hilft in diesem Fall nicht
nützlichBee
2
Ich musste Visual Studio neu starten, nachdem ich die oben genannte Einstellung
geändert hatte
1
@ Kun-yaoWang, oben Kommentar von nützlichBee erwähnt hat für mich gearbeitet und ich benutze VS 2015.
Manoj Attal
10

Versuchen Sie, die Kompatibilitätsstufe zu ändern, die für mich funktioniert hat.

Überprüfen Sie, um welches Niveau es sich handelt

USE VJ_DATABASE;
GO
SELECT compatibility_level
FROM sys.databases WHERE name = 'VJ_DATABASE';
GO

Dann machen Sie es kompatibel mit der älteren Version

ALTER DATABASE VJ_DATABASE
SET COMPATIBILITY_LEVEL = 110;   
GO
  • 100 = SQL Server 2008
  • 110 = SQL Server 2012
  • 120 = SQL Server 2014

Standardmäßig ändert SQL Server 2014 die Kompatibilität der Datenbankversionen auf nur 2014, wobei @@ versionSie anhand der Funktion, die Sie erkennen sollten, feststellen können, um welche Version von SQL Server es sich handelt.

Führen Sie dann den obigen Befehl aus, um die Version zu ändern, die Sie haben.

Zusätzlicher Schritt: Stellen Sie sicher, dass die Zugänglichkeit der Datenbank nicht zurückgesetzt wird. Klicken Sie dazu mit der rechten Maustaste auf die Eigenschaften des Ordners und der Datenbank. (Stellen Sie sicher, dass Sie Rechte haben, damit Ihnen kein Zugriff verweigert wird.)


quelle
2

Für mich hat die Verwendung der von codedom bereitgestellten Lösung nicht funktioniert. Hier können wir nur die Kompatibilitätsversion der bestehenden Datenbank ändern.

Das eigentliche Problem liegt jedoch darin, dass die interne Datenbankversion aufgrund von Änderungen im Speicherformat nicht übereinstimmt.

Weitere Informationen zur SQL Server-Version und ihrer internen Datenbankversion sowie zur Datenbankkompatibilitätsstufe finden Sie hier. Es ist also hilfreich, wenn Sie Ihre Datenbank mit der SQL Server 2012 Express- Version oder niedriger erstellen . Oder starten Sie Visual Studio 2015 Preview.

Aamol
quelle
2

Diese Lösung löst mein Problem: (von: https://msdn.microsoft.com/en-us/library/ms239722.aspx )

So hängen Sie eine Datenbankdatei (.mdf) dauerhaft vom Knoten Datenverbindungen an

  1. Öffnen Sie das Kontextmenü für Datenverbindungen und wählen Sie Neue Verbindung hinzufügen.

    Das Add - Verbindung Dialogfeld angezeigt.

  2. Wählen Sie die Schaltfläche Ändern .

    Das Dialogfeld Datenquelle ändern wird angezeigt.

  3. Wählen Sie Microsoft SQL Server und klicken Sie auf OK .

    Die Verbindung hinzufügen erscheint wieder im Dialogfeld mit Microsoft SQL Server (SqlClient) angezeigt in der Datenquelle Textfeld ein .

  4. Geben Sie im Feld Servername den Pfad zur lokalen Instanz von SQL Server ein oder suchen Sie ihn. Sie können Folgendes eingeben:

    • "." für die Standardinstanz auf Ihrem Computer.
    • "(LocalDB) \ v11.0" für die Standardinstanz von SQL Server Express LocalDB.
    • ". \ SQLEXPRESS" für die Standardinstanz von SQL Server Express.

    Informationen zu SQL Server Express LocalDB und SQL Server Express finden Sie unter Übersicht über lokale Daten .

  5. Wählen Sie entweder Windows-Authentifizierung verwenden oder SQL Server-Authentifizierung verwenden .

  6. Wählen Sie Datenbankdatei anhängen , Durchsuchen und öffnen Sie eine vorhandene MDF-Datei.

  7. Wählen Sie die Schaltfläche OK .

    Die neue Datenbank wird im Server-Explorer angezeigt. Es bleibt mit SQL Server verbunden, bis Sie es explizit trennen.

Sagte Abolfazl Fatemi
quelle
1
Diese Lösung hat bei mir funktioniert. Ich habe meine Vs2012-Standardverbindungseinstellung in tool-option-database tools-> data connection -> sql server name = (LocalDB) \ MSSQLLocalDB geändert. und folgte dann dem obigen Schritt. und in Schritt 4 habe ich den Namen der SQL SQL-Instanz 2014 als (LocalDB) \ MSSQLLocalDB eingegeben. und alles ist gut. Dank bro.
Abdul hameed
1

Eine andere Lösung besteht darin, die Datenbank auf z. B. 2012 zu migrieren, wenn Sie die Datenbank aus z. B. SQL Server Manager 2014 "exportieren". Dies erfolgt im Menü Aufgaben-> Skripts generieren, wenn Sie mit der rechten Maustaste auf Datenbank klicken. Folgen Sie einfach dieser Anweisung:

https://www.mssqltips.com/sqlservertip/2810/how-to-migrate-a-sql-server-database-to-a-lower-version/

Es generiert ein Skript mit allem und führt dann in Ihrem SQL Server-Manager, z. B. 2012, das Skript wie in der Anweisung angegeben aus. Ich habe den Test mit Erfolg durchgeführt.

Naha
quelle
0

Ich verwende VS 2017. Standardmäßig lautet der Name der SQL Server-Instanz (LocalDB) \ MSSQLLocalDB. Wenn ich jedoch die Kompatibilitätsstufe der Datenbank wie in der Antwort von @ user3390927 auf 110 herabstufte, konnte ich die Datenbankdatei in VS anhängen und den Servernamen als "localhost \ SQLExpress" auswählen.

theandroid
quelle