최근에 SQL Server Express 설치 관리자와이 지침을 사용하여 LocalDB를 버전 13에서 14로 업그레이드했습니다 . 설치 후 버전 13의 기존 기본 인스턴스 (MSSQLLOCALDB)를 중지하고 v14.0.1000 서버 엔진을 자동으로 사용하는 새 인스턴스를 작성했습니다.
나는 종종 데이터베이스 통합 테스트를 위해 LocalDB를 사용합니다. 즉, xunit 테스트에서 테스트가 끝나면 삭제되는 (임시) 데이터베이스를 만듭니다. 새 버전부터 불행히도 다음과 같은 오류 메시지로 인해 모든 테스트가 실패합니다.
실제 파일 'C : \ Users \ kepflDBd0811493e18b46febf980ffb8029482a.mdf'를 열거 나 만들 때 CREATE FILE에서 운영 체제 오류 5 (액세스가 거부되었습니다.)가 발생했습니다.
이상한 점은 mdf 파일의 대상 경로가 올바르지 않고 C : \ Users \ kepfl 와 DBd0811493e18b46febf980ffb8029482a.mdf (단일 테스트의 임의 데이터베이스 이름) 사이에 백 슬래시가 누락 된 것 입니다. 데이터베이스는 간단한 명령을 통해 만들어 CREATE DATABASE [databaseName]
집니다. 여기서 특별한 것은 없습니다.
SSMS에서 데이터, 로그 및 백업의 대상 위치는 다음과 같습니다.
그러나 위치를 업데이트하려고하면 다른 오류 메시지가 나타납니다.
LocalDB가 데이터베이스를 다시 만들 수 있도록 기본 위치를 어떻게 업데이트 할 수 있습니까? LocalDB가 기본 위치 디렉토리와 데이터베이스 파일 이름을 올바르게 결합하지 않는 것이 분명합니다. 편집 할 수있는 레지스트리 항목이 있습니까? 아니면 다른 것?
Doug의 답변과 sepupic의 의견 후 업데이트
이 Stackoverflow question 에 따르면 기본 위치는 레지스트리를 통해 변경할 수도 있습니다. 그러나 해당 키 "DefaultData", "DefaultLog"및 "BackupDirectory"를 찾으려고하면 레지스트리에서 찾을 수 없습니다. SQL Server v14가 이러한 레지스트리 키의 이름을 바 꾸었습니까? 아니면 이러한 정보를 레지스트리에서 옮겼습니까?