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

C# 如何断开与Azure SQL托管实例的打开连接?,c#,sql-server,database,restore,azure-sql-managed-instance,C#,Sql Server,Database,Restore,Azure Sql Managed Instance,我正在研究一个将数据库还原到Azure SQL托管实例的过程,该过程涉及删除现有数据库并在其位置还原备份(因为托管实例不支持替换) 但是,我在断开任何打开的连接以便执行此操作时遇到问题。在进行更新之前,应该警告用户,但我们不能保证没有打开的连接 通常,我会按照以下思路做一些事情: ALTER DATABASE AdventureWorks2012 SET SINGLE_USER WITH ROLLBACK IMMEDIATE; --RESTORE HERE ALTER DATABASE Adve

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

但是,我在断开任何打开的连接以便执行此操作时遇到问题。在进行更新之前,应该警告用户,但我们不能保证没有打开的连接

通常,我会按照以下思路做一些事情:

ALTER DATABASE AdventureWorks2012 SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
--RESTORE HERE
ALTER DATABASE AdventureWorks2012 SET MULTI_USER;
但是,当我尝试对托管实例中的数据库运行类似的操作时,会出现以下错误:

不支持此ALTER DATABASE语句。更正语法并再次执行该语句。ALTER DATABASE语句失败


有没有办法在Azure SQL托管实例中实现这一点?

在托管实例中从URL还原中,您甚至无法替换现有数据库

因此,在恢复之前,请删除或重命名数据库。
DROP DATABASE MyDb
ALTER DATABASE MyDb MODIFY NAME=MyDb_old
都将终止与数据库的现有连接


或者,您可以使用将现有数据库还原到以前的时间点。

在“从托管实例中的URL还原”中,您甚至不能替换现有数据库

因此,在恢复之前,请删除或重命名数据库。
DROP DATABASE MyDb
ALTER DATABASE MyDb MODIFY NAME=MyDb_old
都将终止与数据库的现有连接

或者,您可以使用将现有数据库恢复到以前的时间点