我需要立即使数据库脱机,但是一个潜在的连接阻塞了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
看到这个问题的更多信息/链接