記錄兩種將單用戶狀態修改為多用戶狀態,我曾經成功過的方法,供參考
第一種方法
USE master;
GO
-- 終止所有活動連接
DECLARE @kill_connections NVARCHAR(MAX) = '';
SELECT @kill_connections += 'KILL ' + CAST(session_id AS NVARCHAR(10)) + ';'
FROM sys.dm_exec_sessions
WHERE database_id = DB_ID('DATABASE_NAME') AND session_id <> @@SPID;
EXEC(@kill_connections);-- 設置單用戶模式并執行操作
ALTER DATABASE [DATABASE_NAME] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
ALTER DATABASE [DATABASE_NAME] SET RECOVERY SIMPLE;
ALTER DATABASE [DATABASE_NAME] SET MULTI_USER;
GO--注意將DATABASE_NAME替換成你自己的數據庫名字
第二種方法?
?這個方法的 1 2 3 步驟是分開執行的。
--1 查出所有當前連接到該數據庫的會話SELECT session_id, login_name, host_name, program_name,status,last_request_start_time,last_request_end_time
FROM sys.dm_exec_sessions
WHERE database_id = DB_ID('YOUR_DATABASE_NAME');--2 殺掉所有會話KILL session_id ;
--注意,第一步中返回多少個session_id ,就KILL 多少個,比如第一步返回 55 56,
--那就是KILL 55;KILL 56;--3 修改單用戶模式為多用戶模式
ALTER DATABASE [YOUR_DATABASE_NAME] SET MULTI_USER;