从.bak文件恢复SQL DB时,所有表都丢失

时间:2014-01-14 18:04:38

标签: sql sql-server

我从客户端收到了一个.bak文件,我一直在努力工作2天。在SQL Server 2012中将文件还原到新数据库时,还原成功,但还原的数据库中没有表。 我尝试了几乎所有我可能在网上找到的东西,我真的认为备份可能没有正确执行(我不期待用这些信息回到客户端)。

我欣赏任何和所有的想法。 感谢

7 个答案:

答案 0 :(得分:3)

你需要回到客户端并告诉他们他们给了你错误的备份,因为它是空的。

如果备份可以成功恢复,并且其中没有表,则备份时也没有表。备份无法“无法正确执行”并仍然成功(并生成可恢复的备份),并在此方案中结束。除非他们备份了错误的数据库或为您提供了错误的.bak文件。

可能客户唯一会生气的是你等了两天告诉他们。

答案 1 :(得分:3)

我遇到了同样的问题。我首先创建数据库,然后右键单击它并选择恢复。这导致没有表格。相反,我右键单击“数据库”并从那里选择恢复。现在我可以看到所有表格。

答案 2 :(得分:0)

听起来客户在发送之前备份了一个空数据库。我恢复了大量客户提供的备份,我对我所发现的内容并不感到惊讶。返回客户端,请求新的FULL DATABASE备份,然后重试。

答案 3 :(得分:0)

冒着“我也是”的回答,听起来好像给你那个备份的人给了你错误的东西。但你可以通过restore headeronly from disk = 'path_to_backup'来确认,它应该告诉你各种有用的信息,包括:

  • 服务器名称
  • 数据库名称
  • 备份日期

答案 4 :(得分:0)

我今天遇到了同样的问题。事实证明,我复制了系统数据库的.bak文件而不是主数据库的.bak文件。今天晚上我要去参加一个节日,然后走进云端。

如果您遇到同样的问题,可能会仔细检查您的文件。我来自同一个目录,同样的日期戳和一个乱码,所以很容易犯错...我喜欢思考。

答案 5 :(得分:0)

我遇到了同样的问题 - 没有恢复任何表格。我所做的是我刚创建了一个新数据库并恢复到新数据库。一切都按预期工作。

答案 6 :(得分:0)

使用此备份脚本 备份时

BACKUP DATABASE [数据库名称]

TO DISK = N'C:\ yourpath \ filename.bak'