如何断开与 Azure SQL 托管实例的打开连接?

How do I disconnect open connections to an Azure SQL Managed Instance?

我正在研究将数据库还原到我的 Azure SQL 托管实例的过程,该过程涉及删除现有数据库并在其位置还原备份(因为托管实例不支持 WITH REPLACE)。

但是,我运行遇到了断开所有打开的连接的问题,因此我可以执行此操作。更新前应警告用户,但我们不能保证没有打开的连接。

通常,我会按照以下方式做一些事情:

ALTER DATABASE AdventureWorks2012 SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
--RESTORE HERE
ALTER DATABASE AdventureWorks2012 SET MULTI_USER;

但是,当我尝试对托管实例中的数据库进行 运行 类似操作时,出现以下错误:

This ALTER DATABASE statement is not supported. Correct the syntax and execute the statement again. ALTER DATABASE statement failed.

有没有办法在 Azure SQL 托管实例中完成此操作?

在托管实例中的 RESTORE FROM URL 中,您甚至无法替换现有数据库。

所以在 RESTORE 之前删除或重命名数据库。 DROP DATABASE MyDbALTER DATABASE MyDb MODIFY NAME = MyDb_old 都会终止与数据库的现有连接。

或者,您可以使用 Managed Point-in-Time Restore 将现有数据库恢复到以前的时间点。