0

我们有一些在安装应用程序期间执行的脚本。

其中一个用于设置数据库排序规则,另一个用于设置兼容性级别。我们对这些脚本使用以下构造:

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?论坛=sql数据库引擎

此问题与还原数据库有关。

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;

但是我不完全理解在单用户模式下恢复和更改数据库之间的区别。

在第一种情况下,将数据库设置为脱机就足够了。

任何帮助将不胜感激。

提前致谢。

4

0 回答 0