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

Sql server 打开SQL Server.bak文件(不还原!),sql-server,sql-server-2008,backup,restore,Sql Server,Sql Server 2008,Backup,Restore,我已经阅读了很多关于如何从.bak文件恢复SQL Server中的数据库的google帖子和StackOverflow问题 但它们都没有说明如何只读取数据库备份中的表。 (反正我也找不到?) 我只想查看一些旧信息,这些信息现在已被删除,而不实际恢复完整的数据库。 这可能吗 编辑: 我只是想发布我对这个问题的T-SQL解决方案,以便其他人可以使用它,我可以返回并查找;) 首先,我创建了一个名为backup\u lookup的新数据库,并将其脱机。 在这之后,我可以将我的旧数据库mydb恢复到新数

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

但它们都没有说明如何只读取数据库备份中的表。 (反正我也找不到?)

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

编辑:

我只是想发布我对这个问题的T-SQL解决方案,以便其他人可以使用它,我可以返回并查找;)

首先,我创建了一个名为
backup\u 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

我希望这有帮助:)

唯一可行的解决方案是恢复
.bak
文件。这些文件的内容和结构没有文档记录,因此,真的没有办法(除了一次可怕的黑客攻击)让它起作用-绝对不值得你花时间和精力

我所知道的唯一能够理解
.bak
文件而不恢复它们的工具是(以及附带的SQL数据比较),它允许您将数据库结构与
.bak
文件的内容进行比较。红门工具是绝对了不起的-强烈推荐,值得每一分钱,他们的成本

我刚刚查看了他们的网站-似乎确实可以使用SQL Compare Pro从
.bak
文件中还原单个表:-)

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

  • 连接到数据库实例(例如,“localhost\sqlexpress”)
  • 要么:

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

  • 设备[…],添加,浏览到.bak文件
  • 选择备份。
    在选项下选择“覆盖=Y”。
    还原数据库
  • 它应该说“100%完成”,你的数据库应该是在线的
  • PS:我再次强调:您可以在“scratch数据库”上轻松完成此操作-您不需要覆盖当前数据库。但您确实需要恢复


    PPS:如果希望编写脚本,您也可以使用T-SQL命令完成同样的任务。

    单用SQL Server 2008似乎不可能做到这一点。您将需要第三方工具的帮助

    它将帮助您使.bak像一个实时数据库:


    没有标准的方法来实现这一点。您需要使用第三方工具,如或。这些工具实际上并不直接读取备份文件。他们让SQL Server“思考”备份文件,就好像这些是实时数据库一样。

    只需添加我的TSQL脚本解决方案:

    首先,;添加名为
    backup\u lookup
    的新数据库。 然后运行这个脚本,插入您自己数据库的根路径和备份文件路径

    USE [master]
    GO
    RESTORE DATABASE backup_lookup
     FROM DISK = 'C:\backup.bak'
    WITH REPLACE,
     MOVE 'Old Database Name' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\backup_lookup.mdf',
     MOVE 'Old Database Name_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\backup_lookup_log.ldf'
    GO
    

    又一颗红门宝石!:-)我不太明白为什么微软没有决定提供这种功能。。如果他们这样做了,对生意会有好处的。你说得对。我想我应该为消费者的利益说话!捆绑电源!*拳头在空中*对redgate的SQL虚拟还原的支持于2015年2月6日结束,不再可用。啊,所以我可以临时创建一个数据库并将其还原到,然后删除它,而不影响我的原始数据库?:)SQL虚拟恢复支持于2015年2月6日结束。