如何将 SQL Server LocalDB 数据库移动到新计算机

Posted

技术标签:

【中文标题】如何将 SQL Server LocalDB 数据库移动到新计算机【英文标题】:How to move a SQL Server LocalDB database to a new computer 【发布时间】:2018-11-19 14:24:26 【问题描述】:

我买了一台新电脑。在我的旧计算机上,我创建了一个使用 Entity Framework Core 的 ASP.NET Core 1.0 Web 应用程序项目。我现在需要有关如何将项目和数据库移动到我的新计算机以进行进一步开发的说明。我已将所有 Visual Studio 解决方案的文件复制到新计算机上的文件夹中。当我尝试运行它时,我得到一个数据库登录失败异常。

我将旧计算机上的数据库定位为C:\Users\steven\ 文件夹中的aspnet-Intake-c7c5<more numbers>.mdf(另一个带有.ldf)。同样在旧计算机上,该数据库还显示在 Visual Studio 的 SQL Server 对象资源管理器中 (localdb)\MSQLLocalDB\databases\ 下。我将.mdf.ldf 文件复制到新计算机上的C:\Users\steve\ 文件夹中(注意用户名从steven 更改为steve),但它没有显示在新计算机上的SQL Server 对象资源管理器中。

谁能告诉我如何将复制的数据库放入新计算机上的 SQL Server 对象资源管理器中,以便我的应用程序可以找到它?我使用的是 Windows 10。旧电脑有 Visual Studio 2015,新电脑有 Visual Studio 2017。

谢谢大家的回答。事实证明,我使用了实体框架,因此我能够使用 EF 数据库迁移来重新创建数据库。如果它对其他人有帮助,如果您使用 ef 数据库迁移并想要重新创建数据库,您只需进入 Nuget 包管理器控制台并使用命令 update-database。它重新创建数据库(当然,不是数据)。我并不关心数据,因为它只是用于开发和测试的数据。将来我会尝试更好地表达我的问题。再次感谢。它现在正在工作。

【问题讨论】:

如果在 Visual Studio 上打开项目并双击数据库文件,它应该会在 SQL Server 对象资源管理器窗口中打开数据库。 How can I move a SQL Server LocalDb database from one machine to another?的可能重复 【参考方案1】:

您可以在 MSSQL 中使用 from Attach 和 detach

https://docs.microsoft.com/en-us/sql/relational-databases/databases/move-a-database-using-detach-and-attach-transact-sql?view=sql-server-2017

或者

您可以在 MSSQL 中使用从备份和恢复

https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/create-a-full-database-backup-sql-server?view=sql-server-2017

https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/restore-a-database-backup-using-ssms?view=sql-server-2017

【讨论】:

OP 正在询问一个 MSSQL LocalDB 实例。这与 MSSQL DB 不同,并且没有备份功能。 MSSQL LocalDB 仅用于开发,仅在用户连接到它时运行。

以上是关于如何将 SQL Server LocalDB 数据库移动到新计算机的主要内容,如果未能解决你的问题,请参考以下文章

如何使数据库转到 SQL Server 而不是 localDB?

如何将 LocalDB 添加到 Visual Studio 2015 社区的 SQL Server 对象资源管理器?

009.Working with SQL Server LocalDB --在sql server localdb 上操作数据

SQL Server LocalDB:将数据库分离并重新附加到同一台计算机(机器,相同路径)后,无法备份数据库

无法将 SQL Server LocalDB 用于我的 WPF 应用程序

将 SQL Server 身份验证与 localdb 一起使用