Ограничения для одного пользователя, даже если никто не подключен
При использовании SQL Server Management Studio я пытаюсь запросить БД, созданную с ограничениями "для одного пользователя".
Я вхожу в систему, используя учетные данные SQL и пользователя "sa", и, выполнив команду sp_who2, я дважды проверяю, что никто не подключен к БД, тем не менее, при выполнении запроса к таблице БД система отвечает:
База данных "MyDB" уже открыта и может иметь только одного пользователя одновременно.
Я хочу понять, почему у меня возникла эта проблема. Кто-нибудь может помочь в этом?
1 ответ
Когда вы устанавливаете базу данных в "однопользовательском" режиме, вы можете открыть только одно соединение с базой данных (подробнее здесь).
Поэтому, когда вы открываете SSMS для навигации по объектам базы данных, вы открываете единственное разрешенное соединение. После этого любая другая операция, требующая нового подключения к базе данных, завершится ошибкой, например, создание нового окна запроса для записи запроса.
Из MS Docs:
Когда вы запускаете экземпляр SQL Server в однопользовательском режиме, SQL Server Management Studio может подключаться к SQL Server. Обозреватель объектов в Management Studio может выйти из строя, поскольку для некоторых операций требуется более одного подключения. Для управления SQL Server в однопользовательском режиме выполняйте операторы Transact-SQL, подключаясь только через редактор запросов в Management Studio, или используйте служебную программу sqlcmd.
То же самое происходит локально, если у вас запущен агент SQL Server.
Еще один совет от MS Docs (если вы используете SQL Server локально):
Остановите службу агента SQL Server перед подключением к экземпляру SQL Server в однопользовательском режиме; в противном случае служба агента SQL Server использует соединение, тем самым блокируя его.