【问题标题】:Single user restrictions even if nobody's connected即使没有人连接也有单用户限制
【发布时间】:2020-06-16 15:55:22
【问题描述】:
使用 SQL Server Management Studio 时,我尝试查询使用“单用户”限制创建的数据库。
我使用 SQL 凭据和“sa”用户登录并运行 sp_who2 命令,我仔细检查了没有人连接到数据库,但是在对数据库表执行查询时,系统回复:
数据库“MyDB”已经打开,一次只能有一个用户。
我想了解我遇到此问题的原因。
有人可以帮忙吗?
【问题讨论】:
标签:
sql-server
ssms
single-user
sql-server-2019-express
【解决方案1】:
当您将数据库设置为“单用户”模式时,您只能打开与数据库的单个连接(更多信息here)。
因此,当您打开 SSMS 以浏览数据库对象时,您会打开唯一允许的连接。在此之后,任何其他需要与数据库建立新连接的操作都将失败,例如创建一个新的查询窗口来编写查询。
来自 MS Docs:
当您在单用户模式下启动 SQL Server 实例时,SQL Server Management Studio 可以连接到 SQL Server。 Management Studio 中的对象资源管理器可能会失败,因为某些操作需要多个连接。要在单用户模式下管理 SQL Server,请通过仅通过 Management Studio 中的查询编辑器进行连接来执行 Transact-SQL 语句,或使用 sqlcmd 实用程序。
如果您正在运行 SQL Server 代理,则会在本地发生同样的情况。
MS Docs 的另一个建议(如果您在本地运行 SQL Server):
在以单用户模式连接到 SQL Server 实例之前停止 SQL Server 代理服务;否则,SQL Server 代理服务会使用该连接,从而阻止它。