Di recente, ho aggiornato LocalDB dalla versione 13 alla 14 utilizzando il programma di installazione di SQL Server Express e queste istruzioni . Dopo l'installazione, ho arrestato l'istanza predefinita esistente (MSSQLLOCALDB) della versione 13 e ne ho creata una nuova, che utilizzava automaticamente il motore del server v14.0.1000.
Uso spesso LocalDB per i test di integrazione del database, ovvero nei test xunit, creo un database (temporaneo) che viene eliminato al termine del test. Dalla nuova versione, purtroppo tutti i miei test falliscono a causa del seguente messaggio di errore:
CREATE FILE ha riscontrato l'errore 5 del sistema operativo (accesso negato.) Durante il tentativo di aprire o creare il file fisico 'C: \ Users \ kepflDBd0811493e18b46febf980ffb8029482a.mdf'
La cosa strana è che il percorso target per il file mdf non è corretto, manca una barra rovesciata tra C: \ Users \ kepfl e DBd0811493e18b46febf980ffb8029482a.mdf (che è il nome del database casuale per un singolo test). I database vengono creati tramite il semplice comando CREATE DATABASE [databaseName]
: qui nulla di speciale.
In SSMS, vedo che le posizioni di destinazione per dati, registro e backup sono le seguenti:
Tuttavia, quando provo ad aggiornare la posizione, ricevo un altro messaggio di errore:
Come posso aggiornare i percorsi predefiniti in modo che LocalDB sia in grado di creare nuovamente i database? È ovvio che LocalDB non combina correttamente la directory di posizione predefinita e il nome del file di database: esiste una voce di registro che posso modificare? O qualsiasi altra cosa?
Aggiornamento dopo la risposta di Doug e il commento di sepupic
In base a questa domanda StackOverflow , anche la posizione predefinita dovrebbe essere modificabile tramite il registro. Tuttavia, se provo a trovare le chiavi corrispondenti "DefaultData", "DefaultLog" e "BackupDirectory", non riesco a trovarle nel mio registro. SQL Server v14 ha rinominato queste chiavi di registro o ha spostato queste informazioni dal registro?