Jac*_*mas 7 sql-server configuration
我不得不恢复一个数据库,但一些用户仍然连接着,并离开了这一天。以前,我将数据库设置为单用户,现在我看不到该选项。
因此,我在实例级别进行了更改,将Properties/Connections/Maximum number of concurrent users 设置为 1,断开所有其他用户与服务器的连接。
我重新启动了 SQL Server 服务,但现在我根本无法访问数据库。数据库已启动并正在运行,但我无法打开查询窗口或右键单击“属性”以还原更改。
我怎样才能解决这个问题?
Aas*_*lah 11
首先,永远不要将服务器属性页面上的Max Number of Concurrent Connections设置为 1。此选项甚至可以阻止管理员登录,但无论如何仍然可以使用专用管理员连接。
有时,将Max Number of Concurrent Connections设置为 1 后,登录时可能会遇到以下错误消息:
无法打开用户默认数据库。登录失败。
用户“用户名”登录失败
要解决此问题:在登录窗口中,单击选项按钮,然后在默认数据库项中,选择一个数据库,如tempdb,然后按登录。
使用 T-SQL:
USE [master];
GO
ALTER DATABASE [YourDatabaseNameHere] SET MULTI_USER WITH NO_WAIT;
GO
Run Code Online (Sandbox Code Playgroud)
使用 SSMS:
如果数据库在Single_User模式,并且您想将其更改为 Multi_User,但由于其他人已经拥有连接而无法访问它,则:
如果您有ALTER ANY CONNECTION权限(sysadmin和processadmin固定服务器角色的一部分),请运行SP_WHO或SP_WHO2,找到使用目标数据库的进程并执行:
KILL processid (Ex: KILL 87)
Run Code Online (Sandbox Code Playgroud)
然后执行上面的 T-SQL 将您的数据库带回multi_user。
或者,您可以分离然后附加您的数据库并执行上面的 T-SQL 将其带到multi_user。在生产服务器上不建议这样做。