如何在 azure Data Studio 中禁用自动提交

问题描述

我们使用 Azure Data Studio 进行 sql Server 查询。但是,它会自动提交所有内容,我找不到禁用此功能的选项。 我找到了此页面 https://docs.microsoft.com/en-us/sql/odbc/reference/develop-app/setting-the-commit-mode?view=sql-server-ver15,但在连接设置中找不到任何可以设置 sql_ATTR_AUTOCOMMIT 属性的位置

解决方法

自动提交是SQL Server的默认行为,将其关闭集合implicit_transactions 上:

设定在BEGIN TRANSACTION模式到隐式的,该连接。

当ON时,系统处于隐性事务模式。这意味着 如果@@TRANCOUNT = 0,则以下任一 Transact-SQL 语句 开始新的交易。它相当于一个看不见的BEGIN 被首先执行交易:

  • ALTER TABLE
  • FETCH
  • REVOKE
  • BEGIN TRANSACTION
  • GRANT
  • SELECT(见下面的例外。)
  • 创建
  • 插入
  • 截断表
  • 删除
  • OPEN
  • 更新
  • DROP

当OFF,每个前述的T-SQL语句是由有界 看不见的BEGIN TRANSACTION和COMMIT看不见TRANSACTION语句。 当关,我们说的交易模式是自动提交。如果你的T-SQL 代码明显发出BEGIN TRANSACTION,我们说的交易模式 是显式的。

所以只需打开一个查询窗口(会话)并运行:

set implicit_transactions on

在Azure中的Data Studio缺省情况下可以在这里设置的:

enter image description here

但是,如果你这样做,你正在编写一个可重复使用的脚本,记得设置添加到脚本本身,以便与不同的交易行为另一个用户doen't运行它。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...