1

使用 SQL Server Management Studio 时,我尝试查询使用“单用户”限制创建的数据库。

我使用 SQL 凭据和“sa”用户登录并运行 sp_who2 命令,我仔细检查了没有人连接到数据库,但是在对数据库表执行查询时,系统回复:

数据库“MyDB”已经打开,一次只能有一个用户。

我想了解为什么我会遇到这个问题。有人可以帮忙吗?

4

1 回答 1

0

当你在“单用户”模式下设置一个数据库时,你只能打开一个到数据库的连接(更多信息在这里)。

因此,当您打开 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 代理服务会使用该连接,从而阻止它。

于 2020-07-12T08:02:52.180 回答