【问题标题】:The database cannot be opened because of it's version. Connecting .mdf file to Visual Studio 2019数据库无法打开,因为它的版本。将 .mdf 文件连接到 Visual Studio 2019
【发布时间】:2020-11-21 20:09:19
【问题描述】:

我安装了 Visual Studio 2019 和 MS SQL Server Management Studio 18 和 SQL Server 2019 localdb。 一切都更新了。

我在 Visual Studio 中创建了新的本地数据库文件 .mdf,它列在我的解决方案资源管理器中。 我想通过使用 MS SQL Server Management 来处理它,创建表等。所以我将创建的 .mdf 文件附加到我的 localdb 数据库中。创建表,保存。一切正常。在 Visual Studio 中,我在解决方案资源管理器中双击 .mdf 文件,因此它通常也会添加到我的数据连接中,但此处无法完成错误:

数据库 'D:\VSREPOS\REPOS\CARNOTE\CARNOTE\DATABASE.MDF' 不能 因为是 904 版本所以打开了。这个服务器支持 852 版本和 早些时候。不支持降级路径。无法打开新的 数据库 'D:\VSREPOS\REPOS\CARNOTE\CARNOTE\DATABASE.MDF'。创建 数据库被中止。尝试附加一个自动命名的数据库 文件 D:\VSrepos\repos\CarNote\CarNote\Database.mdf 失败。一个数据库 存在同名文件,或指定文件无法打开,或 位于 UNC 共享上。

所以我尝试了其他方法。 我在 MS SQL Server Management 中创建了版本 852 的新数据库,我发现它是 SQL Server 2016(选项-> 兼容性级别 - 2016)。我在配置管理器中停止了我的 localdb 服务器,以将 .mdf 文件和 .ldf 文件复制到我的 Visual Studio 项目存储库中。我已将该数据库文件添加到 Visual Studio 解决方案资源管理器中。因此,我再次尝试通过双击将该数据库添加到服务器资源管理器中,还尝试通过添加新连接来添加它。我收到与上述完全相同的错误。

我完全不明白问题出在哪里。好吧,这是关于版本的,但我只有一个本地 sql 服务器,所以 Visual Studio 怎么会使用不同的版本。如何解决这个问题?有什么想法吗?

还有一件事。我正在研究一个连接到在线 sql server 的项目。现在我需要让它离线。我需要将它连接到 .mdf 文件。这是一个小项目。我之前在本地没有任何 sql server,所以我今天安装了 sql server express 2019,所以我可以附加 Visual Studio .mdf 文件并在那里处理它。我错过了什么? Visual Studio 是否有它自己的 sql server 和它自己的版本?如何将其更新到我的本地版本,因为它说 Visual Studio 的 852 版本已过时,而 .mdf 文件的版本为 904。这对我来说没有意义,因为我也试图以其他方式制作它。

【问题讨论】:

    标签: sql-server ssms visual-studio-2019


    【解决方案1】:

    您根本无法降级 sql server 数据库或在较旧的 SQL server 版本中打开数据库,而且它与 Compatibility level 不同。

    当您安装 Visual Studio 时,它会安装自己的 sql server express edition 实例,这可能与您使用 sql server 独立安装时安装的实例不同。

    您可以尝试SQL SERVER – How to Get List of SQL Server Instances Installed on a Machine? 了解您已安装的实例

    【讨论】:

    • 它说我只有一个实例 LOCALMSSQLSERVER REG_SZ MSSQL15.LOCALMSSQLSERVER
    【解决方案2】:

    我在这里找到了解决方案:

    https://medium.com/cloudnimble/upgrade-visual-studio-2019s-localdb-to-sql-2019-da9da71c8ed6

    安装我的本地 sql server 并没有更新代码本身。

    我打开了一个 Powershell 窗口并运行了以下命令:

    sqllocaldb stop projectsv13
    sqllocaldb delete projectsv13
    sqllocaldb stop mssqllocaldb
    sqllocaldb delete mssqllocaldb
    sqllocaldb create MSSQLLocalDB
    

    实际上它没有找到任何项目v13,但它重新创建了mssqllocaldb。 现在,我在 VS 存储库中本地化的 .mdf 文件在 VS 和 MS SQL Management Studio 中都可以正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-30
      • 2020-07-16
      相关资源
      最近更新 更多