Ostatnio zaktualizowałem LocalDB z wersji 13 do 14 za pomocą instalatora SQL Server Express i tej instrukcji . Po instalacji zatrzymałem istniejącą instancję domyślną (MSSQLLOCALDB) w wersji 13 i utworzyłem nową, która automatycznie używała silnika serwera v14.0.1000.
Często używam LocalDB do testów integracji bazy danych, tj. W moich testach xunit tworzę (tymczasową) bazę danych, która jest usuwana po zakończeniu testu. Od nowej wersji niestety wszystkie moje testy nie powiodły się z powodu następującego komunikatu o błędzie:
UTWÓRZ PLIK napotkał błąd systemu operacyjnego 5 (Odmowa dostępu.) Podczas próby otwarcia lub utworzenia pliku fizycznego „C: \ Users \ kepflDBd0811493e18b46febf980ffb8029482a.mdf”
Dziwne jest to, że ścieżka docelowa pliku mdf jest niepoprawna, brakuje ukośnika odwrotnego między C: \ Users \ kepfl i DBd0811493e18b46febf980ffb8029482a.mdf (która jest losową nazwą bazy danych dla pojedynczego testu). Bazy danych są tworzone za pomocą prostego polecenia CREATE DATABASE [databaseName]
- tutaj nic specjalnego.
W SSMS widzę, że docelowe lokalizacje danych, dziennika i kopii zapasowej są następujące:
Jednak gdy próbuję zaktualizować lokalizację, pojawia się kolejny komunikat o błędzie:
Jak mogę zaktualizować domyślne lokalizacje, aby LocalDB mógł ponownie tworzyć bazy danych? Oczywiste jest, że LocalDB nie łączy poprawnie domyślnego katalogu lokalizacji i nazwy pliku bazy danych - czy istnieje wpis rejestru, który mogę edytować? Albo coś innego?
Aktualizacja po odpowiedzi Douga i komentarzu sepupika
Zgodnie z tym pytaniem Stackoverflow domyślną lokalizację należy również zmienić za pośrednictwem rejestru. Jeśli jednak spróbuję znaleźć odpowiednie klucze „DefaultData”, „DefaultLog” i „BackupDirectory”, nie mogę ich znaleźć w moim rejestrze. Czy program SQL Server v14 zmienił nazwy tych kluczy rejestru lub przeniósł te informacje z rejestru?