从bak文件恢复原始MDF文件

Ali*_*Net 8 sql-server database-restore

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

Mil*_*vic 11

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

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

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

RESTORE FILELISTONLY
FROM DISK = 'E:\Test\TestFull.bak'
GO
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

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

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'
Run Code Online (Sandbox Code Playgroud)


ste*_*ary 5

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

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

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

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