Тупик после настройки однопользовательского режима - PullRequest
0 голосов
/ 02 апреля 2020

У нас есть несколько скриптов, которые выполняются во время установки нашего приложения.

Один из них используется для настройки сортировки базы данных, другой - для настройки уровня совместимости. Мы используем следующую конструкцию для этих сценариев:

ALTER DATABASE [DB_NAME] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO

ALTER DATABASE [DB_NAME] SET COMPATIBILITY_LEVEL = DB_COMPATIBILITY_LEVEL
-- ALTER DATABASE [DB_NAME] COLLATE 'Collation Name'
GO

ALTER DATABASE [DB_NAME] SET MULTI_USER
GO

Вопрос :

Возможно ли, чтобы какой-то фоновый процесс получил доступ после установки однопользовательского режима ? В этом случае наш скрипт не может быть выполнен. Я видел эту проблему, и она кажется похожей, поэтому я решил задать вопрос.

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/950c9b85-67f9-4272-8dff-14aa3590bc8a/single-user-mode-session-lost-after-backgound-processes-jump-in?forum=sqldatabaseengine

Эта проблема была связана с восстановлением базы данных.

alter database [test-db] set single_user with rollback immediate;   --This sql is run using test-db
use master;restore database [test-db] from database_snapshot = 'snapshot_test-db';
alter database [test-db] set multi_user;

Но я не до конца понимаю разницу между восстановлением и изменением базы данных в однопользовательском режиме.

В первом случае достаточно будет перевести базу данных в автономный режим.

Любая помощь приветствуется.

Заранее спасибо.

...