sqlanywhere:保存点用于回滚找不到
-
29-09-2020 - |
题
在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->执行 - >“在每个语句之后提交”中的每个命令都是由自动提交的选项引起的。如果设置了此选项,我可以重现问题描述的错误。未选中它按预期工作。
不隶属于 dba.stackexchange