Pergunta

Qual é a maneira correta de configurar e reverter para o ponto de salvamento no SQLAnywhere.Tendo este trecho:

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;

Recebendo esta mensagem de erro ao executá-lo no dbisql:

Não foi possível executar a instrução.SavePoint 'spt_abc' não encontrado sqlcode = -220, odbc 3 state = "hy000" linha 6, coluna 1 Você pode continuar executando ou interrompe.

ROLLBACK PARA SAVEPOINT spt_abc

o mesmo acontece ao tentar reverter para spt_123.

Foi útil?

Solução

Este comportamento parece ser causado pela opção de confirmação automática após cada comando no dbisql configurável via Ferramentas-> Opções-> SQLAnywhere-> Execução-> "Commit após cada instrução".Se esta opção estiver definida, posso reproduzir o erro descrito na pergunta.Desmarcado, está funcionando conforme o esperado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a dba.stackexchange
scroll top