Domanda

Qual è il modo corretto sull'impostazione e il rotolamento di Torna a Savepoint su SQLANYWhere.Avere questo snippet:

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;
.

Ottenere questo messaggio di errore durante l'esecuzione in DBISQL:

.

Impossibile eseguire la dichiarazione.Savepoint 'SPT_ABC' non trovato SQLCODE= -220, ODBC 3 stato="HY000" linea 6, colonna 1 Puoi continuare Esecuzione o arresto.

Rollback a Savepoint SPT_ABC

Lo stesso accade quando si tenta di rollback a SPT_123.

È stato utile?

Soluzione

Questo comportamento sembra essere causato dall'opzione di commit automatico dopo ogni comando in DBISQL configurabile tramite Strumenti-> Opzioni-> SQLANYWHERE-> Esecuzione -> "Impegnazione dopo ogni affermazione".Se questa opzione è impostata, posso riprodurre l'errore descritto sulla domanda.Deselezionato che funziona come previsto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange
scroll top