Gần đây, tôi đã nâng cấp LocalDB từ phiên bản 13 lên 14 bằng trình cài đặt SQL Server Express và hướng dẫn này . Sau khi cài đặt, tôi dừng phiên bản mặc định hiện tại (MSSQLLOCALDB) của phiên bản 13 và tạo một phiên bản mới, tự động sử dụng công cụ máy chủ v14.0.1000.
Tôi thường sử dụng các bài kiểm tra Tích hợp Cơ sở dữ liệu của LocalDB, tức là trong các bài kiểm tra xunit của tôi, tôi tạo một cơ sở dữ liệu (tạm thời) bị xóa khi kiểm tra kết thúc. Kể từ phiên bản mới, thật không may, tất cả các thử nghiệm của tôi đều thất bại vì thông báo lỗi sau:
CREATE FILE gặp phải lỗi hệ điều hành 5 (Truy cập bị từ chối.) Trong khi cố gắng mở hoặc tạo tệp vật lý 'C: \ Users \ kepflDBd0811493e18b46febf980ffb8029482a.mdf'
Điều kỳ lạ là đường dẫn đích cho tệp mdf không chính xác, dấu gạch chéo ngược bị thiếu giữa C: \ Users \ kepfl và DBd0811493e18b46febf980ffb8029482a.mdf (là tên cơ sở dữ liệu ngẫu nhiên cho một thử nghiệm). Các cơ sở dữ liệu được tạo thông qua lệnh đơn giản CREATE DATABASE [databaseName]
- không có gì đặc biệt ở đây.
Trong SSMS, tôi thấy rằng các vị trí mục tiêu cho dữ liệu, nhật ký và sao lưu là như sau:
Tuy nhiên, khi tôi cố cập nhật vị trí, tôi nhận được một thông báo lỗi khác:
Làm cách nào tôi có thể cập nhật các vị trí mặc định để LocalDB có thể tạo lại cơ sở dữ liệu? Rõ ràng là LocalDB không kết hợp chính xác thư mục vị trí mặc định và tên tệp cơ sở dữ liệu - có mục đăng ký nào tôi có thể chỉnh sửa không? Hay bất cứ điều gì khác?
Cập nhật sau câu trả lời của Doug và bình luận của sepupic
Theo câu hỏi Stackoverflow này , vị trí mặc định cũng có thể được thay đổi thông qua sổ đăng ký. Tuy nhiên, nếu tôi cố gắng tìm các khóa tương ứng "DefaultData", "DefaultLog" và "BackupDirectory", tôi không thể tìm thấy chúng trong sổ đăng ký của mình. SQL Server v14 đã đổi tên các khóa đăng ký này hay đã chuyển các thông tin này ra khỏi sổ đăng ký?