我们使用 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 属性的连接设置
问问题
951 次
1 回答
1
自动提交是 SQL Server 中的默认行为,将其关闭设置implicit_transactions on:
将连接的 BEGIN TRANSACTION 模式设置为隐式。
开启时,系统处于隐式事务模式。这意味着如果@@TRANCOUNT = 0,以下任何 Transact-SQL 语句都会开始一个新事务。它相当于先执行一个看不见的 BEGIN TRANSACTION:
- 更改表
- 拿来
- 撤销
- 开始交易
- 授予
- SELECT(见下面的例外。)
- 创造
- 插入
- 截断表
- 删除
- 打开
- 更新
- 降低
关闭时,前面的每个 T-SQL 语句都由一个看不见的 BEGIN TRANSACTION 和一个看不见的 COMMIT TRANSACTION 语句限定。当关闭时,我们说事务模式是自动提交。如果您的 T-SQL 代码明显发出 BEGIN TRANSACTION,我们说事务模式是显式的。
所以只需打开一个查询窗口(会话)并运行:
set implicit_transactions on
在 Azure Data Studio 中,您可以在此处默认设置:
但是如果你这样做了,并且你正在编写一个可重用的脚本,请记住将设置添加到脚本本身,这样其他用户就不会以不同的事务行为运行它。
于 2021-01-07T14:09:04.893 回答