Определение параметров транзакции выполняется оператором SET TRANSACTION, который имеет в стандарте SQL-92 следующее формальное описание:
SET TRANSACTION
{ ISOLATION LEVEL
{ READ UNCOMMITED
| READ COMMITED
| REPEATABLE READ
| SERIALIZABLE }
| { READ ONLY | READ WRITE }
| { DIAGNOSTICS SIZE count_message } } .,… ;
Фраза ISOLATION LEVEL указывает устанавливаемый уровень изоляции.
Фраза READ ONLY устанавливает режим, при котором разрешается только чтение. Этот режим устанавливается по умолчанию, если уровень изоляции определен как READ UNCOMMITED.
При режиме READ ONLY на данные не устанавливается никаких блокировок.
Фраза READ WRITE устанавливает режим, который разрешает как чтение, так и запись данных. При этом режиме уровень изоляции не может быть установлен как READ UNCOMMITED.
Режим READ WRITE устанавливается по умолчанию для любого уровня, отличного от READ UNCOMMITED.
Фраза DIAGNOSTICS SIZE определяет размер области, используемой для записи диагностических сообщений, доступ к которым осуществляется оператором GET DIAGNOSTICS.
Например, для определения транзакции, предотвращающей все описанные выше конфликтные ситуации, следует выполнить SQL-оператор:
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;