39

我正在使用 VS2012 并创建了一个数据库:

(localdb)\v11.0 (SQL Server 11.0.2100 - T61\Alan)

我怎样才能找出这个数据库的物理位置。我怎样才能备份这个?我可以只制作文件的副本,将它们移动到另一个位置并再次启动数据库。

这是我的连接字符串:

<add name="DB1Context" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=DB1;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
4

7 回答 7

46

默认情况下,LocalDB 数据库在 C:/Users/"username" 目录中创建“*.mdf”文件。

链接参考:https ://docs.asp.net/en/latest/tutorials/first-mvc-app/working-with-sql.html

于 2016-03-30T00:41:26.933 回答
43

对于第一次接触 Entity Framework 的人来说,这是相当混乱的。

如果使用Code First,会生成一个mdf文件,它位于C:/Users/"username"

如果你使用Database First,你在 SQL Server 对象资源管理器(不是服务器资源管理器!!)下创建一个数据库,会在下面生成一个mdf文件C:\Users\"username"\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\MSSQLLocalDB

于 2017-01-17T04:19:26.693 回答
34

您是说可以在SQL Server Management Studio中看到它吗?Right click on DataBase -> Properties -> Files会告诉你它在硬盘上的哪个位置。如果您备份 mdf,请务必备份 ldf。

在此处输入图像描述

或者,您可以右键单击数据库,然后选择Tasks -> Backup. 这将为您创建一个 .bak 文件,您无需担心 mdf/ldf。

于 2013-08-13T06:50:44.770 回答
15

http://technet.microsoft.com/en-us/library/hh510202.aspx

数据库的系统数据库文件存储在用户的本地 AppData 路径中,该路径通常是隐藏的。例如 C:\Users\--user--\AppData\Local\Microsoft\Microsoft SQL Server 本地 DB\Instances\LocalDBApp1。用户数据库文件存储在用户指定的位置,通常在 C:\Users\\Documents\ 文件夹中的某个位置。

于 2013-08-13T06:57:57.797 回答
13

试试这个——

DECLARE 
      @SQL NVARCHAR(1000)
    , @DB_NAME NVARCHAR(100) = 'AdventureWorks2008R2'

SELECT TOP 1 @SQL = '
    BACKUP DATABASE [' + @DB_NAME + '] 
    TO DISK = ''' + REPLACE(mf.physical_name, '.mdf', '.bak') + ''''
FROM sys.master_files mf
WHERE mf.[type] = 0
    AND mf.database_id = DB_ID(@DB_NAME)

PRINT @SQL
EXEC sys.sp_executesql @SQL

输出 -

BACKUP DATABASE [AdventureWorks2008R2] 
TO DISK = 'D:\DATABASE\SQL2012\AdventureWorks2008R2.bak'
于 2013-08-13T07:05:00.813 回答
3

打开 Windows 注册表编辑器并导航到 key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Local DB\Installed Versions。查看目标 SQL Server 实例的版本键下方,例如11.0SQL 2012,并查看其InstanceAPIPath在 localdb 文件系统位置的值。

请注意,可以在此处找到映射到发布名称和年份的 SQL Server 版本的完整列表

于 2015-07-24T21:49:19.437 回答
3

此 PowerShell 脚本将为您提供 localdb .mdf 文件的默认位置:

[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | out-null
(New-Object Microsoft.SqlServer.Management.Smo.Server("(localdb)\$instancename")).DefaultFile

$instancename您要检查的 localdb 实例的名称在哪里。您可以通过运行获取 localdb 实例列表

sqllocaldb i
于 2015-10-28T12:19:07.847 回答