Транзакции DB2 - зафиксировать все или выполнить откат - PullRequest
0 голосов
/ 27 июня 2018

У меня есть SQL-скрипт, который имеет несколько вставок / обновлений / удалений, и я хочу гарантировать, что он фиксируется только в том случае, если все операторы выполняются успешно.

Я думаю, что для базы данных автокоммит установлен на Истину, и, поскольку я не отвечаю за него, я не могу его изменить ...

Заранее спасибо!

1 Ответ

0 голосов
/ 27 июня 2018

Если вы отправляете SQL-скрипт процессору командной строки Db2 (db2 clp), вы можете использовать либо параметр командной строки для отключения фиксации, либо вы можете включить или отключить автокоммит на лету внутри сценарий.

Чтобы отключить автокоммит в командной строке Db2 CLP: используйте db2 +c -stvf scriptfile.sql

Чтобы отключить автокоммит внутри файла скрипта:

update command options using c off;    --disable autocommit

insert... ;

update ...;

commit;

Если вы отправляете скрипт на другой процессор, вам нужно указать, какой скрипт-процессор вы используете, так как разные инструменты имеют разные методы для определения этих вещей.

...