数据库 ' 库名' 已打开,并且一次只能有一个用户访问。 (Microsoft SQL Server,错误: 924)
解决方法:
登录MSSM工具后,执行以下命令:
USE master;
GO
DECLARE @SQL VARCHAR(MAX);
SET @SQL=''
SELECT @SQL=@SQL+'; KILL '+RTRIM(SPID)
FROM master..sysprocesses
WHERE dbid=DB_ID('YC6Q_WOGEE60');
EXEC(@SQL);
GO
ALTER DATABASE YC6Q_WOGEE60 SET MULTI_USER;
其中将YC6Q_WOGEE60改为你的数据库名。
在尝试还原数据库时,出现如下错误:
方案一:设置数据库在单用户模式下工作;
1、在数据库上右键“属性”:
2、“选项”->“限制访问”,选择“SINGLE_USER”
方案二:利用SQL语句,断开所有用户链接,并回滚所有事务,具体SQL语句如下:
ALTER DATABASE YC6Q_WOGEE60 SET OFFLINE WITH ROLLBACK IMMEDIATE
其中将YC6Q_WOGEE60改为你的数据库名。
关闭MSSM工具后,重新登录sa
执行还原:点击右键选择 任务--还原--数据库,参考:SQL Server 还原提示:备份集中的数据库备份与现有的 'X' 数据库不同-今日头条 (toutiao.com)
还原完毕后,如何数据库未连接,再执行:
ALTER database [数据库名] set online
方案三:利用SQL语句,杀死正在使用该数据库的所有进程;
USE master
go
DECLARE @Sql NVARCHAR(max)
SET @Sql=''
select @Sql=@Sql+'kill '+cast(spid as varchar(50))+';' from sys.sysprocesses where dbid=DB_ID('数据库名')
EXEC(@Sql)
CMD命令下登录数据库执行:
osql -S localhost -U sa -PWMSdb.test