在还原期间关闭现有连接

use*_*267 8 sql-server

在事务 sql 中执行数据库还原时是否有关闭现有连接的选项(相当于我们可以在 SSMS 中检查的框)?

我们可以使用受限制的用户来执行此操作吗?如果可以,一旦还原操作完成,我们应该如何删除此选项

提前致谢

Bob*_*mes 11

您必须将数据库设置为单用户并立即回滚,进行恢复,然后在同一批次中设置为多用户

ALTER DATABASE [test] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
RESTORE DATABASE [test] FROM  DISK = N'V:\MSSQL2016\Backup\test.bak' WITH  FILE = 1,  NOUNLOAD,  REPLACE,  STATS = 5
ALTER DATABASE [test] SET MULTI_USER
Run Code Online (Sandbox Code Playgroud)

您可以通过在 SSMS 中设置所有选项来获取此脚本,而不是单击“确定”,而是单击窗口顶部的“脚本”。

在此处输入图片说明


Kin*_*hah 8

我在单用户中设置数据库时遇到问题,例如 sql 代理连接可能会先建立它,然后您将很难将该数据库从 single_use 中取出。

相反,我更喜欢离线。

Alter database your_db_name set OFFLINE with rollback immediate
-- do your restore with replace and recovery
Run Code Online (Sandbox Code Playgroud)