web-dev-qa-db-fra.com

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

J'ai créé un exemple de base de données à l'aide de SQL Server 2014 Express et je l'ai ajouté à ma solution Windows Form. Lorsque vous double-cliquez dessus pour l'ouvrir, j'obtiens cette erreur.

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

J'utilise Visual Studio 2013. Je ne comprends vraiment pas que j'utilise les deux dernières versions des produits Microsoft et qu'ils sont incompatibles. Est-ce que je manque quelque chose? Comment puis-je ouvrir cette base de données?

enter image description here

83
Omer K

Essayez de changer Tools > Options > Database Tools > Data Connections > SQL Server Instance Name.

La valeur par défaut pour VS2013 est (LocalDB)\v11.0.

Passer à (LocalDB)\MSSQLLocalDB, par exemple, semble fonctionner - plus d'erreur de version 782.

139
user1723033

Essayez de changer le niveau de compatibilité, a travaillé pour moi.

Vérifiez à quel niveau c'est

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

Puis rendez-le compatible avec l'ancienne version

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

Par défaut, Sql Server 2014 modifiera la compatibilité des versions de la base de données sur 2014 uniquement, à l'aide du @@ version, vous devriez pouvoir déterminer la version de Sql Server.

Puis exécutez la commande ci-dessus pour changer la version que vous avez.

Étape supplémentaire: assurez-vous que l'accessibilité de la base de données n'est pas réinitialisée. Pour ce faire, cliquez avec le bouton droit de la souris sur les propriétés du dossier et de la base de données. (assurez-vous que vous avez des droits afin de ne pas obtenir un accès refusé)

10
user3390927

Pour moi, utiliser la solution fournie par codedom n'a pas fonctionné. Ici, nous pouvons uniquement modifier la version de compatibilité de la base de données existante.

Mais le problème réel réside dans le fait que la version de la base de données interne ne correspond pas en raison de modifications du format de stockage.

Découvrez plus de détails sur la version de SQL Server et sur sa version de base de données interne et son niveau de compatibilité de base de données ici Il serait donc bon que vous créiez votre base de données à l'aide de SQL Server 2012 Express version ou inférieure. . Ou commencez à utiliser Visual Studio 2015 Preview.

2
Aamol

Cette solution résout mon problème: (à partir de: https://msdn.Microsoft.com/en-us/library/ms239722.aspx )

Pour attacher de manière permanente un fichier de base de données (.mdf) à partir du nœud Connexions de données

  1. Ouvrez le menu contextuel pour les connexions de données et choisissez Ajouter une nouvelle connexion.

    La boîte de dialogue Ajouter apparaît.

  2. Choisissez le bouton Modifier .

    La boîte de dialogue Modifier la source de données apparaît.

  3. Sélectionnez Microsoft SQL Server et choisissez le bouton OK.

    La boîte de dialogue Ajouter une connexion réapparaît avec Microsoft SQL Server (SqlClient) affiché dans la zone de texte Source de données .

  4. Dans la zone Nom du serveur, tapez ou naviguez jusqu'au chemin d'accès à l'instance locale de SQL Server. Vous pouvez taper ce qui suit:

    • "." pour l'instance par défaut sur votre ordinateur.
    • "(LocalDB)\v11.0" pour l'instance par défaut de SQL Server Express LocalDB.
    • ".\SQLEXPRESS" pour l'instance par défaut de SQL Server Express.

    Pour plus d'informations sur SQL Server Express LocalDB et SQL Server Express, voir Présentation des données locales .

  5. Sélectionnez soit Utiliser l'authentification Windows ou Utiliser l'authentification SQL Server .

  6. Choisissez Joindre un fichier de base de données , Parcourir et ouvrez un fichier .mdf existant. fichier.

  7. Choisissez le bouton OK.

    La nouvelle base de données apparaît dans l'Explorateur de serveurs. Il restera connecté à SQL Server jusqu'à ce que vous le déconnectiez explicitement.

2

Une autre solution consiste à migrer la base de données vers, par exemple, 2012 lorsque vous "exportez" la base de données, par exemple. Sql Server manager 2014. Cette opération est effectuée dans le menu Tâches -> Générer des scripts lorsque vous cliquez avec le bouton droit de la souris sur DB. Il suffit de suivre cette instruction:

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

Il génère un script avec tout, puis dans votre gestionnaire de serveur SQL, par exemple. 2012 exécuter le script comme spécifié dans l'instruction. J'ai effectué le test avec succès.

1
Naha

J'utilise VS 2017. Par défaut, le nom de l'instance SQL Server est (LocalDB)\MSSQLLocalDB. Cependant, en rétrogradant le niveau de compatibilité de la base de données à 110, comme indiqué dans la réponse de @ user3390927, je pouvais joindre le fichier de base de données dans VS, en choisissant Nom du serveur sous le nom "localhost\SQLExpress".

0
theandroid