无法为SQL Server Management Studio 17配置AdventureWorks,备份恢复报错求助
解决SSMS 17还原AdventureWorks时提示“No backup selected to be restored”的问题
我之前也碰到过这个一模一样的糟心问题!别慌,咱们从最常见的原因开始排查,一步步解决:
1. 最容易忽略的细节:没勾选备份集
很多人在SSMS还原界面添加完.bak文件后就直接点确定,但其实必须在“选择用于还原的备份集”列表里勾选对应的条目!
- 打开“还原数据库”窗口,点击“设备”后的「...」按钮,添加你的AdventureWorks.bak文件;
- 返回窗口后,往下滚动找到“选择用于还原的备份集”区域,确保里面的备份集选项处于勾选状态(默认可能未勾选,这正是报错的核心原因)。
2. 验证备份文件是否完好
如果勾选后仍报错,先确认备份文件没有损坏。可以用T-SQL命令快速验证:
RESTORE HEADERONLY FROM DISK = 'C:\你的备份文件路径\AdventureWorks.bak'
- 若执行成功,会返回备份集的详细信息,说明文件没问题;
- 若命令报错,大概率是备份文件损坏,重新下载官方的AdventureWorks备份包即可。
3. 检查文件访问权限
SQL Server服务账号可能没有读取你存放备份文件的目录权限:
- 最简单的办法是把备份文件移到SQL Server默认备份目录(比如
C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Backup,MSSQL14对应SQL Server 2017,根据你的实例版本调整); - 或者右键备份文件→「属性」→「安全」,给SQL Server服务账号(一般是
NT SERVICE\MSSQLSERVER)添加「读取」权限。
4. 避开图形界面,用T-SQL直接还原
如果以上方法都无效,试试用命令行还原,绕开SSMS图形界面的潜在bug:
RESTORE DATABASE AdventureWorks FROM DISK = 'C:\你的备份文件路径\AdventureWorks.bak' WITH REPLACE, -- 覆盖已存在的同名数据库(如果有) MOVE 'AdventureWorks_Data' TO 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\AdventureWorks.mdf', MOVE 'AdventureWorks_Log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\AdventureWorks.ldf';
注意替换命令中的文件路径,确保目标目录存在且SQL Server有写入权限。
内容的提问来源于stack exchange,提问作者Abhijit




