Recentemente, atualizei o LocalDB da versão 13 para 14 usando o instalador do SQL Server Express e esta instrução . Após a instalação, parei a instância padrão existente (MSSQLLOCALDB) da versão 13 e criei uma nova, que usava automaticamente o mecanismo do servidor v14.0.1000.
Costumo usar o LocalDB para testes de integração de banco de dados, ou seja, em meus testes xunit, crio um banco de dados (temporário) que é excluído quando o teste termina. Desde a nova versão, infelizmente todos os meus testes falham devido à seguinte mensagem de erro:
CREATE FILE encontrou o erro do sistema operacional 5 (acesso negado.) Ao tentar abrir ou criar o arquivo físico 'C: \ Users \ kepflDBd0811493e18b46febf980ffb8029482a.mdf'
O estranho é que o caminho de destino para o arquivo mdf está incorreto, falta uma barra invertida entre C: \ Users \ kepfl e DBd0811493e18b46febf980ffb8029482a.mdf (que é o nome aleatório do banco de dados para um único teste). Os bancos de dados são criados através do comando simples CREATE DATABASE [databaseName]
- nada de especial aqui.
No SSMS, vejo que os locais de destino para dados, log e backup são os seguintes:
No entanto, quando tento atualizar o local, recebo outra mensagem de erro:
Como posso atualizar os locais padrão para que o LocalDB possa criar bancos de dados novamente? É óbvio que o LocalDB não combina corretamente o diretório de localização padrão e o nome do arquivo de banco de dados - há uma entrada de registro que eu possa editar? Ou qualquer outra coisa?
Atualização após a resposta de Doug e o comentário de sepupic
De acordo com essa pergunta do Stackoverflow , os locais padrão também devem ser alteráveis por meio do registro. No entanto, se eu tentar encontrar as chaves correspondentes "DefaultData", "DefaultLog" e "BackupDirectory", não consigo encontrá-las no meu registro. O SQL Server v14 renomeou essas chaves do registro ou moveu essas informações para fora do registro?