在Sqlanywhere上设置和滚动到SavePoint的正确方法是什么。有这个片段:

begin transaction;
SAVEPOINT spt_abc;
insert into eins (pl1) values (5);
SAVEPOINT spt_123;
UPDATE eins SET pl1 = 10 where pl1 = 5;
ROLLBACK TO SAVEPOINT spt_abc;
commit;
.

在dbisql中运行它时获取此错误消息:

无法执行语句。保存点'spt_abc'未找到sqlcode= -220,ODBC 3状态=“HY000”第6行,第1列您可以继续 执行或停止。

回滚到SavePoint SPT_ABC

在尝试回滚到SPT_123时会发生同样的情况。

有帮助吗?

解决方案

此行为似乎是由在DBISQL中的每个命令之后通过工具 - >选项 - > sqlanywhere->执行 - >“在每个语句之后提交”中的每个命令都是由自动提交的选项引起的。如果设置了此选项,我可以重现问题描述的错误。未选中它按预期工作。

许可以下: CC-BY-SA归因
不隶属于 dba.stackexchange
scroll top