打开SQL Server .bak文件(不还原!)

Beh*_*ens 46 sql-server backup restore sql-server-2008

我一直在阅读很多关于如何从.bak文件恢复SQL Server中的数据库的google帖子和StackOverflow问题.

但是它们都没有说明如何只读取数据库备份中的表.(无论如何我都找不到?)

我只想查看一些现已删除的旧信息,而不是实际恢复完整的数据库.这可能吗?

.

编辑:

我只是想发布我的T-SQL解决方案来解决问题,所以其他人可能会使用它,我可以回去查找它;)

首先,我创建了一个名为的新数据库backup_lookup并将其脱机.在此之后,我可以将我的旧数据库恢复mydb到新数据库,而不会触及我的原始数据库.

USE master
GO
RESTORE DATABASE backup_lookup
 FROM DISK = 'D:\backup\mydb.bak'
WITH REPLACE,
 MOVE 'mydb' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\backup_lookup.mdf',
 MOVE 'mydb_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\backup_lookup_log.ldf'
GO
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助 :)

pau*_*sm4 34

从SQL Server 2008 SSMS(SQL Server Management Studio),只需:

  1. 连接到您的数据库实例(例如,"localhost\sqlexpress")
  2. 或者:

    • a)选择要还原到的数据库; 或者,或者
    • b)只需创建一个新的空数据库即可恢复.
  3. 右键单击"任务","还原","数据库"

  4. 设备,[...],添加,浏览到.bak文件
  5. 选择备份.
    在选项下选择"overwrite = Y".
    恢复数据库
  6. 它应该说"100%完成",您的数据库应该在线.

PS:我再次强调的是:你可以很容易地做到这一点了"从无到有数据库" -你不是需要覆盖当前的数据库.但是你确实需要恢复.

PPS:如果您希望编写脚本,也可以使用T-SQL命令完成相同的操作.


mar*_*c_s 11

唯一可行的解决办法是恢复.bak文件.这些文件的内容和结构没有记录,因此,实际上没有办法(除了糟糕的黑客之外)才能使用它 - 绝对不值得花时间和精力!

我所知道的唯一可以理解.bak文件而无需恢复文件的工具是Red-Gate SQL Compare Professional(以及随附的SQL数据比较),它允许您将数据库结构与.bak文件内容进行比较.Red-Gate工具绝对是绝对的 - 非常值得推荐,值得花一分钱!

我刚刚检查了他们的网站 - 看起来你确实可以.bak使用SQL Compare Pro 从文件中恢复单个表!:-)


Dav*_*ers 9

没有标准的方法可以做到这一点.您需要使用第三方工具,如ApexSQL RestoreSQL Virtual Restore.这些工具并不直接读取备份文件.他们让SQL Server"思考"备份文件,就好像这些是实时数据库一样.

  • SQL Virtual Restore支持于2015年2月6日结束. (3认同)