有时(例如)通过执行以下命令将数据库设置为脱机时,由于连接了一个或多个客户端,将引发异常:
ALTER DATABASE <dbname> SET OFFLINE
根据此答案,一种解决方案是with rollback immediate
最后使用:
ALTER DATABASE <dbname> SET OFFLINE WITH ROLLBACK IMMEDIATE
Byt为什么实际上这会断开其他客户端的连接?听起来像是强制断开连接的一种非常明显的方法,尽管它可以工作。
当其他用户正在运行数据库时,您不能使数据库脱机,因此您将不得不以一种或另一种方式断开用户的连接以使数据库脱机。
如果您彬彬有礼,则可以要求所有用户完成所有操作,然后再使数据库脱机
但是如果这不可行,包括选项
WITH ROLLBACK IMMEDIATE
意味着所有当前事务都已回滚(数据库重置为事务开始的位置)。您也可以使用
WITH ROLLBACK AFTER 60 SECONDS
但是我从来不需要
如果在未完成的事务正在运行的情况下使数据库脱机,则数据库将处于不稳定状态,更改既未进行,也未取消
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句