![MSSQL:从备份的 .MDF/.LDF 回滚数据库](https://linux22.com/image/638781/MSSQL%EF%BC%9A%E4%BB%8E%E5%A4%87%E4%BB%BD%E7%9A%84%20.MDF%2F.LDF%20%E5%9B%9E%E6%BB%9A%E6%95%B0%E6%8D%AE%E5%BA%93.png)
我错误地删除了 Microsoft Server Management Studio 中的一张表,并且恢复功能未正确配置。
我有特定数据库的旧 .mdf 和 .ldf 文件,其中包含已删除的表。如何使用这些文件正确恢复旧版本?我可以“分离”并重新附加另一个文件夹中的旧版本吗?此功能如何工作?当前的 .mdf/.ldf 文件会发生什么情况?我附加的旧文件会被移动到相应的文件夹吗?
答案1
我会将文件附加到一个新的数据库,编写表脚本并在活动数据库中重新创建它。
首先,将 *.mdf 和 *.ldf 文件移动到默认数据库文件位置。这样,它们将继承适当的文件级别权限。
现在,从现有文件创建一个新的数据库,但使用新名称:
USE master
GO
CREATE DATABASE mydb_restored ON
( FILENAME = N'C:\Program Files\MSSQL\Data\mydb.mdf' ),
( FILENAME = N'C:\Program Files\MSSQL\Log\mydb_log.ldf' )
FOR ATTACH
GO
现在,您应该可以浏览旧数据库,找到有问题的表。右键单击它,选择“Script Table as”,然后在查询编辑器中打开“CREATE TO”脚本。
编辑脚本以使用原始数据库而不是恢复的数据库,并且您应该能够重新创建表。
您还可以生成脚本包括数据从恢复的表中