在SSMS中通过.bak文件创建测试数据库时遇独占访问错误
解决SQL Server还原数据库时“无法获取独占访问权”的问题
方法1:通过SSMS图形界面配置
- 打开还原数据库窗口,切换到选项页签
- 勾选*“覆盖现有数据库(WITH REPLACE)”*
- 勾选*“关闭现有连接到目标数据库(WITH ROLLBACK IMMEDIATE)”*
- 重新执行还原操作
方法2:使用T-SQL命令强制还原
执行以下SQL语句,注意替换备份文件路径、数据库逻辑名和新文件路径:
USE master; GO -- 强制断开TestLeo数据库的所有连接 ALTER DATABASE TestLeo SET SINGLE_USER WITH ROLLBACK IMMEDIATE; GO -- 还原数据库,替换为实际的备份文件路径 RESTORE DATABASE TestLeo FROM DISK = 'D:\Backup\生产库备份.bak' WITH REPLACE, -- 替换为备份文件中的数据、日志逻辑名,以及新的存储路径 MOVE 'ProdDB_Data' TO 'D:\Data\TestLeo.mdf', MOVE 'ProdDB_Log' TO 'D:\Log\TestLeo.ldf'; GO -- 恢复数据库为多用户模式 ALTER DATABASE TestLeo SET MULTI_USER; GO
若不清楚备份文件内的逻辑文件名,可先执行
RESTORE FILELISTONLY FROM DISK = '你的备份文件路径'查询。
方法3:手动终止数据库进程
- 在SSMS中打开活动监视器
- 定位到TestLeo数据库关联的所有进程,右键选择*“终止进程”*
- 完成后重新执行还原操作
内容的提问来源于stack exchange,提问作者Leonel Rivera
相关产品推荐
相关产品推荐

