从bak文件恢复原始MDF文件

时间:2013-07-29 06:05:44

标签: sql-server database-restore

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

2 个答案:

答案 0 :(得分:11)

请记住,还原数据库备份文件不会提供原始MDF(和LDF)文件。获取原始MDF文件的唯一方法是复制它 您可以在Visual Studio中执行steoleary建议的T-SQL,请在此处查看更多内容:How to: Run SQL Scripts in Solution Explorer。您也可以在SQL Server Management Studio中执行此操作。

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

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

中的名为TestFull.bak的备份
RESTORE FILELISTONLY
FROM DISK = 'E:\Test\TestFull.bak'
GO

enter image description here

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

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'

答案 1 :(得分:5)

如果您已创建空白数据库,要使用备份覆盖此数据库,则需要指定WITH REPLACE参数。

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

在执行还原时,您应该能够非常轻松地在GUI中找到这些选项,或者您也可以使用此处的引用将其编写为脚本:

How to: Restore a Database to a New Location and Name (Transact-SQL)