【问题标题】:auto-commit Teradata SQL Assistant自动提交 Teradata SQL 助手
【发布时间】:2023-03-15 13:16:02
【问题描述】:

是否可以通过更改某些参数来禁用 Teradata SQL 助手中的自动提交功能?
我查看了 Teradata SQL 助手菜单,但没有看到像 Teradata Studio 中那样的复选框。

提前感谢您的帮助。

【问题讨论】:

  • 您的具体问题是什么? ANSI 模式还是 Teradata 模式会话?
  • 我不希望 Teradata SQL 助手自动提交 DML 语句。不管是 ANSII 还是 Teradata.Net 会话模式
  • 没有 .Net 会话。如果您运行 ANSI 模式会话 SQLA 自动提交(您可以将多个语句作为多语句请求运行以避免它),但 Teradata 模式会话会自动提交每个请求(然后您可以使用 BT/ET)。

标签: teradata teradata-sql-assistant


【解决方案1】:

我能想到的最接近的方法是将事务模式设置为 ANSI。

虽然我建议您查看文档,因为 ANSI 模式有其怪癖。

https://docs.teradata.com/reader/8mHBBLGP88~HK9Auie2QvQ/kdzcOoHlpcaoa_NVApG4Pg

【讨论】:

  • 即使在 ANSI 模式下,默认情况下 SQLA(或更准确地说,是 .NET 或 ODBC 驱动程序)也会自动提交。如果您想要 ANSI 模式下的多语句事务,SQLA 中提供了一些特殊指令(.BeginTx、.CommitTx、.RollbackTx),其功能类似于 Teradata 模式的 BT、ET、ABORT。
  • 没错,它并没有完全禁用自动提交。尽管 ANSI 模式将提供对提交的一些控制。同样,这是我能想到的最接近的东西。
  • 使用 CLIv2 驱动程序,ANSI 模式确实提供了隐式事务启动/显式 COMMIT。但是像 ODBC、JDBC 等标准 API 将自动提交指定为默认行为 - 所以这些驱动程序实际上会在幕后插入一个 COMMIT,除非应用程序特别要求禁用自动提交。
猜你喜欢
  • 2020-12-07
  • 1970-01-01
  • 2016-05-10
  • 2018-11-19
  • 2014-03-10
  • 2019-02-05
  • 2017-07-19
  • 2013-10-13
  • 2019-04-12
相关资源
最近更新 更多