将.mdf文件从app_data文件夹复制到默认的localhost文件夹

coo*_*ist 4 sql-server mdf

我的朋友给了我一个数据库文件:record.mdf.我将该.mdf文件复制到我的app_data文件夹,我可以访问它.

但是,连接字符串包含绝对路径:

AttachDbFilename="C:\Users\Dell\Documents\Visual Studio 2010\Projects\WebApplication2\WebApplication2\App_Data\record.mdf"
Run Code Online (Sandbox Code Playgroud)

但是我想用它连接:

Data Source=localhost\SQLEXPRESS;
Run Code Online (Sandbox Code Playgroud)

如何将.mdf文件复制到SQL Server的本地文件夹,以便连接字符串不使用数据库的绝对路径?

我使用的是Visual Studio 2010. 我没有SQL Server Management Studio.

mar*_*c_s 6

第1步:您需要找到SQL Server的数据目录.这将是类似的东西

C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data
Run Code Online (Sandbox Code Playgroud)

默认情况下(对于SQL Server 2008 R2 Express) - 在您的情况下可能略有不同,具体取决于您安装SQL Server Express的方式(以及您拥有的版本).

第2步:将该record.mdf文件复制到该目录

步骤3:将其附加到SQL Server Express实例 - sqlcmd如果您手头没有Mgmt Studio,请使用:

c:\> sqlcmd -S .\SQLExpress 
Run Code Online (Sandbox Code Playgroud)

然后在sqlcmd提示符下键入:

USE [master]
GO
CREATE DATABASE record ON 
   (FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\record.mdf' )
FOR ATTACH_REBUILD_LOG;
GO
Run Code Online (Sandbox Code Playgroud)

这会将.mdf文件作为新的"逻辑"数据库附加record到SQL Server Express实例,并.ldf在此过程中重建丢失的事务日志文件().

从现在开始,你可以使用

server=.\SQLEXPRESS;Database=record;Integrated Security=SSPI;
Run Code Online (Sandbox Code Playgroud)

作为连接数据库的连接字符串