web-dev-qa-db-fra.com

La base de données ne peut pas être ouverte car il s'agit de la version 851. Ce serveur prend en charge les versions 782 et antérieures. Un chemin de rétrogradation n'est pas pris en charge

J'essaie de joindre un fichier de base de données dans SQL Server. Je reçois l'erreur ci-dessous. La même erreur que je reçois en essayant de joindre une base de données à partir de Visual Studio. J'utilise Visual Studio 2013 et SQL Server 2014 Management Studio.

Ma chaîne de connexion:

<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"/>

Erreur:

La base de données 'exemple' ne peut pas être ouverte car il s'agit de la version 851. Ce serveur prend en charge les versions 782 et antérieures. Un chemin de rétrogradation n'est pas pris en charge. Impossible d'ouvrir la nouvelle base de données 'Sample'. CREATE DATABASE est abandonné.

 enter image description here

et voici que l'instance SQL Server par défaut est définie dans Visual Studio.

 enter image description here

12
Musakkhir Sayyed

NE PEUT PAS faire cela - vous ne pouvez pas attacher/détacher ou sauvegarder/restaurer une base de données d'une version plus récente de SQL Server à une version ancienne - les structures de fichiers internes le sont aussi différent pour supporter la compatibilité ascendante. Évidemment, votre base de données provient d'une pré-version de SQL Server 2016 (version interne: 852), tandis que le moteur auquel vous essayez de l'associer est SQL Server 2014 (version interne: 782).

Vous pouvez soit contourner ce problème en

  • en utilisant la même version de SQL Server sur toutes vos machines - vous pouvez alors facilement sauvegarder/restaurer des bases de données entre instances

  • sinon, vous pouvez créer les scripts de base de données pour la structure (tables, vue, procédures stockées, etc.) et pour le contenu (les données réelles contenues dans les tables) dans SQL Server Management Studio (Tasks > Generate Scripts) ou à l'aide d'un outil tiers.

  • ou vous pouvez utiliser un outil tiers tel que SQL Compare et SQL Data Compare de Red-Gate pour "différencier" votre source et votre cible, générez des scripts de mise à jour à partir de ces différences, puis exécutez ces scripts sur la plate-forme cible; cela fonctionne sur différentes versions de SQL Server.

17
marc_s

J'avais ce problème alors que je suivais un vieux Pluralsight MVC4

Le cours me demandait d'utiliser la version 11.0, mais j'utilisais une version 2015. J'ai ouvert l'explorateur d'objets SQL Server, examiné les différentes versions de LocalDB et saisi le nom de celle qui contenait ma base de données (cliquez avec le bouton droit de la souris sur «Renommer»).

 enter image description here

J'ai ensuite collé le nom dans la fenêtre Ajouter une connexion, sous Nom du serveur. Cliquez sur Actualiser, et le tour est joué. J'espère que cela aide quiconque.

 enter image description here

0
megamaiku