SAP HANA-开始传输、回滚、提交
我刚刚开始使用SAP HANA。我来自SQL Server环境。 SAP HANA中是否有等效的SAP HANA-开始传输、回滚、提交,sap,hana,Sap,Hana,我刚刚开始使用SAP HANA。我来自SQL Server环境。 SAP HANA中是否有等效的BEGIN TRAN 看起来有命令Rollback和Commit,我不知道它什么时候起作用,什么时候自动提交。 我想知道是否有类似于BEGIN-TRAN的东西,我可以指定我不希望下面的更新在SAP HANA(以及大多数其他DBMS)中自动提交。所有命令都在隐式事务上下文中执行。无需明确声明您现在就要开始事务 使用HANA Studio时,需要注意的一点是,默认会话设置是使用AUTOCOMMIT,这意味
BEGIN TRAN
看起来有命令Rollback
和Commit
,我不知道它什么时候起作用,什么时候自动提交。我想知道是否有类似于
BEGIN-TRAN
的东西,我可以指定我不希望下面的更新在SAP HANA(以及大多数其他DBMS)中自动提交。所有命令都在隐式事务上下文中执行。无需明确声明您现在就要开始事务
使用HANA Studio时,需要注意的一点是,默认会话设置是使用AUTOCOMMIT
,这意味着每个命令都将在其自己的事务中执行,并立即执行COMMIT
ted。
为了将命令捆绑到一个事务中,您必须将会话参数更改为AUTOCOMMIT
=false
除此之外,还可以选择在自治事务中运行代码,这基本上为您的过程提供了自己的独立事务
SAP HANA没有提供(直到HANA 2 SP02)的是“子事务”或“本地事务”-这是MS SQL Server中的BEGIN TRAN
所做的-您可以嵌套、提交或回滚
当然,这是有文档记录的,因此您可能希望熟悉事务概念
一般性说明:在存储过程中进行事务管理通常指向使用显式中间结果集(例如临时表)对数据进行“逐步”处理。这是一种非常昂贵的方法,应该被HANA SQL脚本中更灵活的“数据流”方法所取代。而不是在临时文件中插入/更新。在表中,选择的结果只是分配给变量。SQL脚本编译器在执行时会找出最终(可传递的)数据转换的样子,删减未使用的变量和处理步骤,在可能的情况下并行化SELECT
s,并以更快和/或更少的资源使用率提供相同的输出
我想说的基本上是:当直接从MS SQL Server移植代码时,请注意在SAP HANA中可能有更好的实现方法
一般备注II:显然这是我的观点,但我发现使用存储过程时子事务相当混乱。在不了解过程调用树的所有子事务逻辑的情况下,客户机应用程序将失去对事务处理的控制。突然之间,客户端认为尚未提交的事务已提交或回滚,而客户端应用程序没有任何指示。对我来说,这是一个不一致的配方,如果可能的话,应该避免。Thx分享这个有帮助。但是:事务范围究竟是什么?它是否在存储过程(以及所有被调用的过程)中?那么XSJS的作用域是如何定义的呢?在研究我自己的问题时,我在这里提出了这个问题:任何帮助都将不胜感激。非常感谢。