数据库 'xxx' 已打开,并且一次只能有一个用户访问
2014-05-08 10:13
375 查看
早上过来准备将服务器的数据库分离,因为这个服务器的数据已经不在需要,但是在分离的时候发现出现如下错误:数据库 'xxx' 已打开,并且
4000
一次只能有一个用户访问,后来查看数据库的选项,果然被设置为了[SINGLE_USER],导致无法分离,估计是昨晚在备份数据库之后不知道如何的就设置为了[SINGLE_USER]吧,现在需要将其设置为多用户的模式,在设置多用户模式的时候可能会因为还有其它进程的连接导致设置无法进行,所以需要杀掉所有连接的进程。使用如下SQL语句即可。
方法一:
USE master;
GO
DECLARE @SQL VARCHAR(3000);
SET @SQL = '';
SELECT @SQL = @SQL+'; KILL ' + RTRIM(SPID)
FROM [sys].[sysprocesses] AS sps
WHERE [sps].[dbid] = DB_ID('test');
SET @SQL = SUBSTRING(@SQL, 2, LEN(@SQL));
EXEC(@SQL);
GO
方法二:
DECLARE @DBName SYSNAME;
SET @DBName = 'BI_Monitor'; --这个是要删除的数据库库名
DECLARE @KSQL NVARCHAR(1000)
DECLARE tb CURSOR LOCAL
FOR
SELECT
KSQL = 'KILL ' + CAST([sps].[spid] AS NVARCHAR(10))
FROM [sys].[sysprocesses] AS sps
WHERE dbid = DB_ID(@DBName)--查询@DBName相关的线程
--循环杀掉要删除数据的相关线程
OPEN tb
FETCH NEXT FROM tb INTO @KSQL
WHILE @@FETCH_STATUS = 0
BEGIN
EXECUTE(@KSQL);
FETCH NEXT FROM tb INTO @KSQL
END
CLOSE tb
DEALLOCATE tb
最后再将相应数据库设置为多用户模式即可。
ALTER DATABASE [test] SET MULTI_USER;--设置为多用户模式
4000
一次只能有一个用户访问,后来查看数据库的选项,果然被设置为了[SINGLE_USER],导致无法分离,估计是昨晚在备份数据库之后不知道如何的就设置为了[SINGLE_USER]吧,现在需要将其设置为多用户的模式,在设置多用户模式的时候可能会因为还有其它进程的连接导致设置无法进行,所以需要杀掉所有连接的进程。使用如下SQL语句即可。
方法一:
USE master;
GO
DECLARE @SQL VARCHAR(3000);
SET @SQL = '';
SELECT @SQL = @SQL+'; KILL ' + RTRIM(SPID)
FROM [sys].[sysprocesses] AS sps
WHERE [sps].[dbid] = DB_ID('test');
SET @SQL = SUBSTRING(@SQL, 2, LEN(@SQL));
EXEC(@SQL);
GO
方法二:
DECLARE @DBName SYSNAME;
SET @DBName = 'BI_Monitor'; --这个是要删除的数据库库名
DECLARE @KSQL NVARCHAR(1000)
DECLARE tb CURSOR LOCAL
FOR
SELECT
KSQL = 'KILL ' + CAST([sps].[spid] AS NVARCHAR(10))
FROM [sys].[sysprocesses] AS sps
WHERE dbid = DB_ID(@DBName)--查询@DBName相关的线程
--循环杀掉要删除数据的相关线程
OPEN tb
FETCH NEXT FROM tb INTO @KSQL
WHILE @@FETCH_STATUS = 0
BEGIN
EXECUTE(@KSQL);
FETCH NEXT FROM tb INTO @KSQL
END
CLOSE tb
DEALLOCATE tb
最后再将相应数据库设置为多用户模式即可。
ALTER DATABASE [test] SET MULTI_USER;--设置为多用户模式
相关文章推荐
- 数据库 'xxx' 已打开,并且一次只能有一个用户访问
- 数据库xxx已打开,并且一次只能有一个用户访问。 (Microsoft SQL Server,错误: 924)
- 数据库 'XXXX' 已打开,并且一次只能有一个用户访问。设置单用户 / 多用户
- 数据库 ' 库名' 已打开,并且一次只能有一个用户访问。 (Microsoft SQL Server,错误: 924)
- 数据库 ' 库名' 已打开,并且一次只能有一个用户访问
- 数据库“”已打开,并且只能一个用户访问。
- 据库 'UFDATA' 已打开,并且一次只能有一个用户访问。 (Microsoft SQL Server,错误: 924)
- 创建一个只能访问视图的数据库用户
- oracle 创建一个用户,并且设定只能访问指定的对象
- 一个用户在同一时间只能登录一次
- Oracle 远程访问配置 在 Windows Forms 和 WPF 应用中使用 FontAwesome 图标 C#反序列化XML异常:在 XML文档(0, 0)中有一个错误“缺少根元素” C#[Win32&WinCE&WM]应用程序只能运行一个实例:MutexHelper Decimal类型截取保留N位小数向上取, Decimal类型截取保留N位小数并且不进行四舍五入操作
- Spring Boot + Spring Security 防止用户在多处同时登录(一个用户同时只能登录一次)及源码分析
- 限制用户访问数据库另外一个用户的对象,reference how to clone user privileges [ID 473317.1]
- sqlserver2012附加数据库报错--无法打开物理文件 XXX.mdf",操作系统错误 5:"5(拒绝访问。)"
- 使用Session实现一个用户只能登录一次
- 无法打开登录所请求的数据库 ""。登录失败。 用户 'XXX\Administrator' 登录失败-的解决办法
- 无法打开登录所请求的数据库 "XXX"。登录失败。 用户 'NT AUTHORITY\SYSTEM' 登录失败。
- 2.如何让一个项目的用户目前只能是姓名登录,优化为增加一个字段为姓名和用户名同时都可以实现登录 ,并且用户名不能使中文?
- 如何在solaris上增加一个只能ftp的用户,并且不让切换目录
- C# 程序只能运行一次(多次运行只能打开同一个程序) 并激活第一个实例,使其获得焦点,并在最前端显示.