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 de 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 por causa da seguinte mensagem de erro:
CREATE FILE encontrou o erro 5 do sistema operacional (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 - existe 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 esta pergunta do Stackoverflow , o local padrão também deve ser alterável 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 de registro ou moveu essas informações para fora do registro?