首页 > 解决方案 > 使 SQL Server LocalDb 可移植

问题描述

我正在设置一台新机器,令我惊讶的是,让 localdb 在新机器上工作真的很困难。我的解决方案资源管理器中的所有内容都已填充,但在我从源代码(使用 git)获取后,我的 (localdb) 项目中没有显示任何内容。

将我的 localdb 项目从旧机器转移到新机器的最佳方法是什么?

在一个理想的世界里,我想做的是设置它,这样当一些人从我们的源中拉下 SSDT 项目时,他们可以点击部署并在他们的机器上完全填充 localdb 项目。以前有没有人这样做过,知道怎么做吗?

--免责声明--

我觉得在谈论 localdb 时,做一些澄清很重要,因为当其他人发布这样的问题时,他们似乎会得到很多适用于 SQL Server 数据库的回复。

什么是 localdb 项目:

localdb SQL Server 项目是一个特殊的服务器实例,它仅在连接到 SQL Server 时运行,部分类似于 SQL Server,并包含仅在与它们建立连接时运行的特殊数据库实例。localdb 可用于某些类型的生产,但它们最常用于测试其他数据库。

localdb 项目不是什么:

localdb 项目不是 SQL Server 数据库。

我很清楚我可以备份项目中的每个数据库并在新机器上手动恢复它们,但这不是我想要做的。

标签: sql-serversql-server-data-toolslocaldb

解决方案


您可以通过分离和附加过程来实现这一点。

第 1 步:找到 localDB 数据库的位置。右键单击数据库名称并选择属性

在此处输入图像描述

数据文件属性中,您可以找到数据库的当前位置。

步骤 2:分离当前数据库

EXEC sp_detach_db 'aspnet-IdentityApplication-E2BBF1E6-123-4567-8910-07BC0413419B', 'true';

第 3 步:将 localDB 复制并粘贴到不同的位置(您要放置 localDB 数据库的位置)

第 4 步:将数据库附加到新位置

CREATE DATABASE [aspnet-IdentityApplication-E2BBF1E6-123-4567-8910-07BC0413419B]  
    ON (FILENAME = 'D:\Test\aspnet-IdentityApplication-E2BBF1E6-123-4567-8910-07BC0413419B.mdf'),   
    (FILENAME = 'D:\Test\aspnet-IdentityApplication-E2BBF1E6-123-4567-8910-07BC0413419B_log.ldf')   
    FOR ATTACH;

推荐阅读