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

时间:2012-06-09 08:01:11

标签: sql-server mdf

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

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

AttachDbFilename="C:\Users\Dell\Documents\Visual Studio 2010\Projects\WebApplication2\WebApplication2\App_Data\record.mdf"

但我想用它连接:

Data Source=localhost\SQLEXPRESS;

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

我正在使用Visual Studio 2010. 我没有SQL Server Management Studio。

2 个答案:

答案 0 :(得分:6)

步骤1:您需要找到SQL Server的数据目录。这将是

C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data

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

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

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

c:\> sqlcmd -S .\SQLExpress 

然后在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

这会将.mdf文件作为新的“逻辑”数据库record附加到SQL Server Express实例,它将重建缺少的事务日志文件(.ldf)过程

从现在开始,您可以使用

server=.\SQLEXPRESS;Database=record;Integrated Security=SSPI;

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

答案 1 :(得分:2)

您可以使用|DataDirectory|\record.mdf

从App_Data目录访问它,而不是将其复制到SQL Server本地文件夹。

文档:http://msdn.microsoft.com/en-us/library/ms247257(v=vs.80).aspx