我需要立即使数据库脱机,但潜在连接阻止了该SET OFFLINE
操作。我尝试从 SQL Server Management Studio 将其脱机,这会调用ALTER DATABASE <database_name> SET OFFLINE
,而不是ALTER DATABASE <database_name> SET OFFLINE WITH NO-WAIT
像我应该做的那样。
其他访问或使数据库脱机的尝试都会失败,因为由于阻塞操作而无法获取锁。
如何SET OFFLINE
在不使整个实例脱机的情况下取消阻止操作?
更新:我最终重新启动了我的 SQL 服务实例,这很快释放了锁,但这是不可取的。我仍然想知道如何终止阻止SET OFFLINE
操作的连接。
答案1
您无法取消离线命令:它将等待,直到可以完成其操作。
你可以杀但这种联系令人反感。
你可能能够终止 ALTER DATABASE 语句但 IIRC 它已经被执行。
如果您重新启动 SQL Server,数据库也将处于脱机状态。
答案2
简短的回答是执行以下 SQL:
USE MASTER
ALTER DATABASE <database_name> SET SINGLE_USER with rollback immediate
看这个问题了解更多信息/链接