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

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

我需要立即使数据库脱机,但潜在连接阻止了该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

这个问题了解更多信息/链接

相关内容