На неформальном уровне мы кратко обсудили возможности управления транзакциями, поддерживаемые в стандарте SQL/92, в п.3.1.4. В этом разделе будут приведены синтаксические определения операторов управления транзакциями и соответствующие пояснения.
3.7.1. Оператор установки параметров транзакции
Оператор SETTRANSACTION служит для задания параметров следующей транзакции для данного SQL-агента. Оператор определяется следующими синтаксическими правилами:
Если уровень изоляции не специфицирован, то неявно полагается заданным уровень изоляции SERIALIZABLE.
Если специфицирован режим доступа READWRITE, то уровень изоляции не должен быть READUNCOMMITTED.
Если неспецифицирован режим доступа транзакции и указан уровень изоляции READUNCOMMITTED, то неявно полагается заданным режим доступа READONLY; в противном случае неявно полагается заданным режим доступа READWRITE.
Попытка выполнения оператора SETTRANSACTION в активной транзакции приводит к возбуждению исключительной ситуации.
Пусть TXN обозначает следующую транзакцию данного SQL-агента.
Режим доступа TXN устанавливается в соответствии со спецификациями, заданными в операторе SETTRANSACTION.
Уровень изоляции TXN устанавливается в зависимости от реализации, но таким образом, чтобы не проявлялись эффекты, которые не должны проявляться на уровне изоляции, явно или неявно задаваемом оператором SETTRANSACTION.
Размер области диагностики TXN устанавливается в соответствии с параметром <numberofconditions>, если он задан; в противном случае размер области диагностики зависит от реализации, но должен быть не меньше того, который был бы выделен при явном задании числа условий равного единице.