最近,我使用 SQL Server Express 安装程序和这条指令将 LocalDB 从版本 13 升级到了 14 。安装后,我停止了版本 13 的现有默认实例(MSSQLLOCALDB)并创建了一个新实例,它自动使用 v14.0.1000 服务器引擎。
我经常使用 LocalDB 进行数据库集成测试,即在我的 xunit 测试中,我创建了一个(临时)数据库,该数据库在测试完成时被删除。自新版本以来,不幸的是,由于以下错误消息,我所有的测试都失败了:
CREATE FILE 在尝试打开或创建物理文件“C:\Users\kepflDBd0811493e18b46febf980ffb8029482a.mdf”时遇到操作系统错误 5(访问被拒绝。)
奇怪的是 mdf 文件的目标路径不正确,在C:\Users\kepfl和DBd0811493e18b46febf980ffb8029482a.mdf(这是单个测试的随机数据库名称)之间缺少反斜杠。数据库是通过简单的命令创建的CREATE DATABASE [databaseName]
——这里没什么特别的。
在 SSMS 中,我看到数据、日志和备份的目标位置如下:
但是,当我尝试更新位置时,我收到另一条错误消息:
如何更新默认位置以便 LocalDB 能够再次创建数据库?很明显,LocalDB 没有正确组合默认位置目录和数据库文件名 - 是否有我可以编辑的注册表项?还是别的什么?
在道格的回答和 sepupic 的评论之后更新
根据这个 Stackoverflow question,默认位置也应该可以通过注册表更改。但是,如果我尝试查找相应的键“DefaultData”、“DefaultLog”和“BackupDirectory”,我无法在注册表中找到它们。SQL Server v14 是否重命名了这些注册表项,或者将这些信息移出注册表?