有时,当(例如)执行以下命令将数据库设置为离线时,会抛出异常,因为一个或多个客户端已连接:
有时当(例如)执行以下命令将数据库设置为离线时,会抛出异常,因为一个或多个客户端已连接:
ALTER DATABASE <dbname> SET OFFLINE
根据这个答案,一种解决方案是在结尾处使用with rollback immediate
:
ALTER DATABASE <dbname> SET OFFLINE WITH ROLLBACK IMMEDIATE
但为什么这样会导致其他客户端断开连接呢?虽然它是有效的,但似乎这是一种非常不明显的强制断开连接的方式。
WITH ROLLBACK IMMEDIATE
会回滚所有事务并隐式断开连接吗? - Jim Aho