我有一个bak文件(这是SQL Server express 2005 mdf文件的备份数据库文件),我应该获取MDF文件以便我可以处理它的表,如何获取原始的MDF文件从这个bak文件?我正在使用Visual Studio 2012,是否有必要拥有管理工作室?我试图将这个bak文件恢复到包含Sql server express management studio 2008的另一个系统中的空数据库,但它说数据库不匹配,出了什么问题?
答案 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
逻辑名称应在下一个脚本中使用。另外,更新使用的路径和名称
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)