如何设置已被连接占用的数据库为MULTI_USER模式,数据库 'xxx' 已打开,并且一次只能有一个用户访问

2022/5/5 19:13:24

本文主要是介绍如何设置已被连接占用的数据库为MULTI_USER模式,数据库 'xxx' 已打开,并且一次只能有一个用户访问,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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 = 'ESB'; --这个是要删除的数据库库名    
     
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 [ESB] SET MULTI_USER;--设置为多用户模式

这篇关于如何设置已被连接占用的数据库为MULTI_USER模式,数据库 'xxx' 已打开,并且一次只能有一个用户访问的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程