9

我有一个 bak 文件(这是 SQL server express 2005 mdf 文件的备份数据库文件),我应该获取 MDF 文件以便我可以处理它的表,我怎样才能从这个 bak 中获取原始 MDF 文件文件?我使用的是Visual Studio 2012,是否需要有管理工作室?我试图将此 bak 文件还原到另一个包含 Sql server express management studio 2008 的系统中的空数据库,但它说数据库不匹配,出了什么问题?

4

2 回答 2

12

请记住,还原数据库备份文件不会提供原始 MDF(和 LDF)文件。获取原始 MDF 文件的唯一方法是复制它您可以在 Visual Studio 中执行 steoleary 建议的 T-SQL,在此处查看更多信息:如何:在解决方案资源管理器中运行 SQL 脚本。您也可以在 SQL Server 管理 Studio 中执行此操作。

您创建的空白数据库没有多大帮助,除非您想将备份同步到它。但为此,您需要一个 3rd 方工具

首先,执行以下操作以找出备份中的逻辑文件名。此示例适用于存储在 E:\Test 中的名为 TestFull.bak 的备份

RESTORE FILELISTONLY
FROM DISK = 'E:\Test\TestFull.bak'
GO

在此处输入图像描述

逻辑名称应在下一个脚本中使用。此外,更新使用的路径和名称

RESTORE DATABASE YourDB
FROM DISK = 'E:\Test\TestFull.bak'
WITH MOVE 'test1' TO 'E:\test\TestMDFFile.mdf',
MOVE 'test1_log' TO 'E:\test\TestLDFFile.ldf'
于 2013-07-30T06:45:40.833 回答
5

如果您创建了一个空白数据库,要用备份覆盖它,您需要指定 WITH REPLACE 参数。

此外,您可能必须指定 MOVE 参数才能将文件放入正确的位置。

进行还原时,您应该能够很容易地在 GUI 中找到这些选项,或者您可以使用此处的参考将其编写脚本:

如何:将数据库还原到新位置和名称 (Transact-SQL)

于 2013-07-29T09:49:50.783 回答