gpt4 book ai didi

sql-server - SQL Server 更改数据库并立即回滚

转载 作者:行者123 更新时间:2023-12-03 02:09:23 25 4
gpt4 key购买 nike

有时(例如)通过执行以下命令将数据库设置为脱机时,会抛出异常,因为连接了一个或多个客户端:

ALTER DATABASE <dbname> SET OFFLINE

根据this answer一种解决方案是在最后使用立即回滚:

ALTER DATABASE <dbname> SET OFFLINE WITH ROLLBACK IMMEDIATE

但是为什么这实际上会断开其他客户端的连接呢?这听起来像是一种非常不明显的强制断开连接的方法,尽管它确实有效。

最佳答案

当其他用户正在运行事务时,您无法使数据库脱机,因此您必须以某种方式断开用户的连接才能使数据库脱机。

如果您有礼貌,您可以要求所有用户在数据库脱机之前完成他们正在做的事情

但如果这不切实际,包括该选项

WITH ROLLBACK IMMEDIATE

表示当前所有事务都回滚(数据库重置到事务开始时的位置)。您还可以使用

WITH ROLLBACK AFTER 60 SECONDS

但我从来没有必要这样做

如果您可以在未完成的事务正在运行时使数据库脱机,那么数据库将处于不稳定状态,既不会进行更改也不会取消更改

关于sql-server - SQL Server 更改数据库并立即回滚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34589660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com