在SET OFFLINE期间强制阻止数据库脱机

我需要立即使数据库脱机,但是一个潜在的连接阻塞了SET OFFLINE操作。 我试图把它从SQL Serverpipe理工作室,这将调用ALTER DATABASE <database_name> SET OFFLINE ,而不是ALTER DATABASE <database_name> SET OFFLINE WITH NO-WAIT像我应该没有ALTER DATABASE <database_name> SET OFFLINE WITH NO-WAIT

其他尝试访问或使数据库脱机失败,因为由于阻止操作而无法获得lockinga。

我怎样才能取消阻止SET OFFLINE操作,而无需离线我的整个实例?


更新:我结束了重新启动我的SQL服务实例,它迅速释放锁,但这是不可取的。 我仍然想知道如何杀死阻塞SET OFFLINE操作的连接。

您不能取消离线命令:它将等待,直到它可以解决它的事情。

你可以杀死有问题的连接。

可能能够杀死ALTER DATABASE语句,但是IIRC已经执行了。

如果您重新启动SQL Server,数据库也将脱机。

简短的回答是执行下面的sql:

 USE MASTER ALTER DATABASE <database_name> SET SINGLE_USER with rollback immediate 

看到这个问题的更多信息/链接