首页 > 解决方案 > 使用 bak 文件恢复数据库。备份集保存现有数据库以外的数据库的备份

问题描述

我正在尝试使用版本 A 的 .bak 文件来恢复数据库,例如版本 B。

这似乎不是正确的做法,因为我收到了一个错误:

标题:Microsoft SQL Server 管理工作室

数据库“B”的还原失败。
(Microsoft.SqlServer.Management.RelationalEngineTasks)

附加信息:

System.Data.SqlClient.SqlError:备份集包含一个数据库的备份,而不是现有的“B”数据库。(Microsoft.SqlServer.SmoExtended)

标签: sql-serverdatabaserestore

解决方案


要使用从不同数据库获取的备份覆盖数据库,您必须在 RESTORE 命令中指定WITH REPLACE选项。

REPLACE 应该很少使用,并且只有在仔细考虑之后才能使用。恢复通常可以防止意外地用不同的数据库覆盖数据库。如果 RESTORE 语句中指定的数据库已存在于当前服务器上,并且指定的数据库系列 GUID 与备份集中记录的数据库系列 GUID 不同,则不会还原数据库。这是一个重要的保障。


推荐阅读