Récemment, j'ai mis à niveau LocalDB de la version 13 à la version 14 à l'aide du programme d'installation de SQL Server Express et de cette instruction . Après l'installation, j'ai arrêté l'instance par défaut existante (MSSQLLOCALDB) de la version 13 et en ai créée une nouvelle, qui utilisait automatiquement le moteur de serveur v14.0.1000.
J'utilise souvent LocalDB pour les tests d'intégration de base de données, c'est-à-dire que, dans mes tests xunit, je crée une base de données (temporaire) qui est supprimée à la fin du test. Depuis la nouvelle version, tous mes tests ont malheureusement échoué à cause du message d'erreur suivant:
CREATE FILE a rencontré l'erreur 5 du système d'exploitation (accès refusé.) En essayant d'ouvrir ou de créer le fichier physique 'C: \ Users \ kepflDBd0811493e18b46febf980ffb8029482a.mdf'
Ce qui est étrange, c'est que le chemin cible du fichier mdf est incorrect, une barre oblique inverse est manquante entre C: \ Users \ kepfl et DBd0811493e18b46febf980ffb8029482a.mdf (nom de base de données aléatoire pour un seul test). Les bases de données sont créées via la commande simple CREATE DATABASE [databaseName]
- rien de spécial ici.
Dans SSMS, je constate que les emplacements cibles pour les données, les journaux et les sauvegardes sont les suivants:
Cependant, lorsque j'essaie de mettre à jour l'emplacement, j'obtiens un autre message d'erreur:
Comment puis-je mettre à jour les emplacements par défaut afin que LocalDB puisse à nouveau créer des bases de données? Il est évident que LocalDB ne combine pas correctement le répertoire d’emplacement par défaut et le nom du fichier de base de données. Existe-t-il une entrée de registre que je puisse modifier? Ou autre chose?
Mise à jour après la réponse de Doug et le commentaire de Sepupic
Selon cette question de Stackoverflow , l'emplacement par défaut devrait également être modifiable via le registre. Cependant, si j'essaie de trouver les clés correspondantes "DefaultData", "DefaultLog" et "BackupDirectory", je ne les trouve pas dans mon registre. SQL Server v14 a-t-il renommé ces clés de registre ou déplacé ces informations hors du registre?