SQLServer2016恢复数据库备份名称不一致的解决办法

恢复数据提示如图错误

解决办法:

备份文件里面记录的原数据库文件路径是 D:\Data\Mulan\,你本机电脑上没有这个文件夹,SQL 找不到地方放 mdf 和 ldf,还原失败。

需要加上 WITH MOVE,把数据文件、日志文件重定向到你本机真实存在的目录。

第一步:先查备份里的逻辑文件名(mulan /mulan_log)

你这个 bak 里:

  • 数据逻辑名:mulan
  • 日志逻辑名:mulan_log

第二步:先找到你本机 SQL Server 的数据存放目录

在 SSMS 执行下面这条查看本机默认数据路径:

SELECT @@SQLDATA

或者右键服务器 → 属性 → 数据库设置,看【数据库默认位置】。

举个例子,很多默认路径是: C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\

第三步:完整修正后的脚本(重点增加 MOVE)

把下面脚本里的目标路径改成你本机真实的路径再运行!

USE master;
GO
ALTER DATABASE [mulanserver] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO

RESTORE DATABASE [mulanserver]
FROM DISK = N'D:\Mulan\20261008\mulan\mulan_backup_2026_10_21_014708_0701857.bak'
WITH REPLACE, RECOVERY,
MOVE N'mulan' TO N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\mulanserver.mdf',
MOVE N'mulan_log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\mulanserver_log.ldf';
GO

ALTER DATABASE [mulanserver] SET MULTI_USER;
GO

⚠️ 注意:

  1. MOVE 逻辑名 TO '本机真实文件完整路径'
  2. 目标文件夹必须提前存在!SQL 不会自动新建文件夹。 比如如果你想放到 D:\SQLData\,要先手动建好 D:\SQLData\ 这个文件夹。

图形界面简单做法(不想写 SQL)

还原窗口 → 【选项】 找到【还原为】那一列,把两个文件的路径改掉,换成你本机真实存在的目录,同时勾选【覆盖现有数据库 (WITH REPLACE)】,再点确定还原。

小提示

你的 SQL 版本是 MSSQL13(SQL2016),路径里 MSSQL13.MSSQLSERVER 是对的。 如果你拿不准本机 DATA 路径,直接把 SELECT @@SQLDATA 的结果发给我,我帮你把脚本写好。