欢迎来到2021年。现在与三年前@dean所描述的非常相似。您无法像文章
查看或更改数据和日志文件的默认位置中提到的那样通过使用SSMS,
对象资源管理器,然后选择您的SQLLocalDB实例并在
数据库设置选项卡上更改其属性来正常更改默认设置。
我在
同一来源中找到的最好的答案是:
SQL Server Express LocalDB实例是用户为自己创建的实例。计算机上的任何用户都可以使用LocalDB实例创建数据库,在其用户配置文件下存储文件,并在其凭据下运行进程。默认情况下,对LocalDB实例的访问权限仅限于其所有者。
顺便说一下,也许你知道,也许不知道:你可以填写表格,然后在
服务器属性 对话框窗口的顶部查找
脚本 按钮。然后,如果你从下拉菜单列表中选择
将操作脚本化到新查询窗口,就会在新的查询窗口中看到类似以下内容的东西:
USE [master]
GO
EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'BackupDirectory', REG_SZ, N'C:\Data'
GO
EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultData', REG_SZ, N'C:\Data'
GO
EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultLog', REG_SZ, N'C:\Data'
GO
不幸的是,它可能只适用于“真正”的 SQL Server,而不适用于 SQL Local DB。当我尝试以管理员身份使用它时,我看到了这个:
Msg 22002, Level 16, State 1, Line 2
RegCreateKeyEx() returned error 5, 'Access is denied.'
Msg 22002, Level 16, State 1, Line 4
RegCreateKeyEx() returned error 5, 'Access is denied.'
Msg 22002, Level 16, State 1, Line 6
RegCreateKeyEx() returned error 5, 'Access is denied.'
因此,如果您正在使用.NET Core/5并尝试轻松使用
Entity Framework迁移和
Code First开发方法,则有一个提示。您可以更新
appsettings.json文件,并在
AttachDbFileName字段中定义首选默认位置的
连接字符串。
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=ContactManager;Trusted_Connection=True;MultipleActiveResultSets=true;AttachDbFileName=C:\\Data\\ContactManager.mdf;"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*"
}