Dan*_*ams 23 sql-server-2008 sql-server
我们需要做一个恢复,不能因为其他用户连接。我们以为我们已经断开了每个进程,但显然没有。
我们如何从 Management Studio 启动其他所有人,以便我们进行备份?
Aar*_*and 45
我总是使用以下内容:
USE master; -- get out of dbname myself
GO
-- kick all other users out:
ALTER DATABASE [dbname] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
-- prevent sessions from re-establishing connection:
ALTER DATABASE [dbname] SET OFFLINE;
Run Code Online (Sandbox Code Playgroud)
有时这可能需要一段时间,有时它会被阻止,因为您是运行它的人,并且您有一个与数据库的活动连接。检查可能具有相同数据库上下文的其他查询窗口 - 这可以包括打开的对话框、对象资源管理器、智能感知、长时间运行的作业等。
当我完成对该数据库配置的更改后,我只需:
ALTER DATABASE [dbname] SET ONLINE;
ALTER DATABASE [dbname] SET MULTI_USER;
Run Code Online (Sandbox Code Playgroud)
尽管有时我需要对该数据库执行的操作要求数据库处于联机状态,因此有时我必须将其置于单用户模式并执行以下操作:
ALTER DATABASE [dbname] SET ONLINE;
GO
USE [dbname];
Run Code Online (Sandbox Code Playgroud)
现在我可以进行更改,然后当我准备好让其他用户连接时,只需:
ALTER DATABASE [dbname] SET MULTI_USER;
Run Code Online (Sandbox Code Playgroud)
Wil*_*Wil 25
有两种方法可以做到:
右键单击对象资源管理器中的数据库,转到任务 > 分离。选择断开连接复选框。
将数据库设置为单用户模式,如下所述:
-- hit Ctrl+Shift+M in SSMS to fill in the template parameter
USE master;
GO
ALTER DATABASE N'<Database Name, sysname,>'
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
ALTER DATABASE N'<Database Name, sysname,>'
SET READ_ONLY;
GO
ALTER DATABASE N'<Database Name, sysname,>'
SET MULTI_USER;
GO
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
131120 次 |
| 最近记录: |