📜  在 SQL 中将数据库从单用户模式设置为多用户模式(1)

📅  最后修改于: 2023-12-03 15:37:31.834000             🧑  作者: Mango

在 SQL 中将数据库从单用户模式设置为多用户模式

在 SQL Server 中,数据库可以处于单用户模式或多用户模式。单用户模式下,只能有一个用户连接到数据库,进行维护或修复工作。而多用户模式则允许多个用户同时连接并访问数据库。

设置数据库为单用户模式

要将数据库设置为单用户模式,可以使用以下 SQL 命令:

ALTER DATABASE [database_name] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

其中,database_name 为要设置为单用户模式的数据库名称。

在执行该命令前,应该断开所有当前连接到该数据库的会话。为此,可以使用 WITH ROLLBACK IMMEDIATE 选项强制回滚所有未完成的事务,并关闭所有连接到该数据库的会话。如果不使用该选项,则命令将等待所有连接释放后再执行。

设置数据库回到多用户模式

要将数据库设置回多用户模式,可以使用以下 SQL 命令:

ALTER DATABASE [database_name] SET MULTI_USER;

其中,database_name 为要设置回多用户模式的数据库名称。

在执行该命令前,应该确保已经完成所有必要的维护或修复工作,并且不再需要单用户模式。一旦将数据库设置回多用户模式,其他用户就可以重新连接和访问该数据库。

注意事项
  • 在单用户模式下,只有拥有 sysadmindbcreator 角色的用户才能连接到数据库。
  • 如果设置了数据库为 SINGLE_USER,但未能在没有其他会话的情况下释放所有连接,则可能需要使用 sp_whosp_who2 等系统存储过程来查找并强制关闭该连接。
  • 在将数据库从单用户模式设置回多用户模式时,应该仔细考虑是否需要执行其他操作,如重新计算统计信息、重新编译存储过程等。