SQL Server即时回滚更改数据库

吉姆·阿豪

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

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何回滚SQL Server数据库中的数据?

在JDBC SQL Server连接中更改数据库

在SQL Server中更改数据库排序规则的风险和影响

SQL:删除内容后如何更改数据库?

SQL动态更改数据库并创建视图

通过回滚NUnit,SQL Server和UI测试中的事务来维护数据库已知状态的正确方法

如何在 DataGridView 中从 SQL 数据库更改数据源,以便更新

具有本地SSMS功能/ SSMS Boost的SQL Server搜索数据库对象“即时”

SQL Server Convert() 更改数据?

更改从SQL Server数据库获取的数据值

Postgres SQL 还原权限被拒绝创建和更改数据库

MS-SQL:通常更改数据库的FileGrowth参数

如何在SQL查询中更改数据库日期格式?

为什么我尝试使用从 SQL Server 2008 上的 SQL Server 2012 获取的 DDL 脚本创建数据库时会出现这些更改数据库错误?

SQL Server CE:禁止修改数据库文件?

SQL Server数据库项目-创建更改脚本

SQL Server数据库项目进行增量更改

更改SQL Server数据库文件位置的脚本

更改SQL Server 2012数据库的排序规则

跟踪Microsoft SQL Server数据库中的更改

如何检测我的SQL Server数据库中的更改

SQL Server作业以跟踪数据库更改

如何更改SQL Server(2008)数据库的日期格式?

IN SQL Server数据库

在CodeIgniter 3中即时更改数据库名称

即时更改数据库列类型

即使新的 SQL 查询在 Access 中工作,在 Excel 文件中更改数据库 SQL 连接也会中断

在RODBC中为SQL Server数据库更改默认数据库

确定SQL查询是否修改数据库