【MS SQL Server】因为数据库正在使用,所以无法获得对数据库的独占访问权” 解决方案汇总
|
admin
2026年6月15日 21:1
本文热度 264
|
文章目录
一、事故现场
方案一:设置数据库再单用户模式下工作:
方案二:利用SQL语句,断开所有用户连接,并回滚所有事务,具体SQL语句如下:
方案三:利用SQL语句,杀死正在使用该数据库的所有进程
方案四:修改数据库的登录密码或重启数据库服务(不太建议)
二、结尾日志备份
前言
因为数据库正在使用,所以无法获得对数据库的独占访问权。
一、事故现场
在尝试还原数据库时,出现如下错误:

方案一:设置数据库再单用户模式下工作:
- 数据库上右键"属性"

- “选项”->“限制访问”,选择"SINGLE_USER"


—设置数据库为单用户模式
USE MASTERGOALTER DATABASE [数据库名称] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;GO
方案二:利用SQL语句,断开所有用户连接,并回滚所有事务,具体SQL语句如下:
ALTER DATABASE [数据库名称] SET OFFLINE WITH ROLLBACK IMMEDIATE
还原完毕再执行
ALTER database [数据库名] set online
注意:不要在需要的还原的数据库下执行,建议在master数据库下面执行
方案三:利用SQL语句,杀死正在使用该数据库的所有进程
第一种:利用游标循环所有正在使用该数据库的进程,并通过kill命令杀死进程。declare @dbname varchar(50)set @dbname='数据库名称'declare @sql varchar(50)declare cs_result cursor local for select 'kill '+cast(spid as varchar(50)) from sys.sysprocesses where db_name(dbid)=@dbname open cs_resultfetch next from cs_result into @sqlwhile @@fetch_status=0begin execute(@sql) fetch next from cs_result into @sqlendclose cs_resultdeallocate cs_result
方案四:修改数据库的登录密码或重启数据库服务(不太建议)
二、结尾日志备份
若以上均无效
去除结尾日志备份勾选项,重试还原成功!

阅读原文:https://mp.weixin.qq.com/s/zjwaCUSRgyysXYebVfs4DQ
该文章在 2026/6/16 11:13:01 编辑过