|
![]() | Příkaz ROLLBACK | ![]() | Transakce a body návratu | Příkaz SAVEPOINT | ![]() |
příkaz_SET_TRANSACTION ::= SET TRANSACTION [ izolace ] [, druh_transakce ]
izolace ::= ISOLATION LEVEL { READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE }
druh_transakce ::= READ ONLY | READ WRITE
Příkaz SET TRANSACTION nastavuje vlastnosti implicitních transakcí: určuje jejich druh a stupeň izolace od ostatních souběžně probíhajících transakcí. Toto nastavení platí i pro všechny následné transakce až do nového nastavení.
Není-li specifikovaná izolace, uplatní se SERIALIZABLE. Není-li specifikován druh transakce, pak je-li specifikována izolace READ UNCOMMITTED, uplatní se READ ONLY, jinak se uplatní READ WRITE.
Je-li tento příkaz proveden v situaci, kdy je explicitní transakce již zahájena, nastane chybový sqlstate 25001.
Interně SQL server 602SQL implementuje pouze stupně izolace READ COMMITTED a SERIALIZABLE. Při nastavení READ UNCOMMITTED se vnitřně nastaví READ COMMITTED, při nastavení REPEATABLE READ se vnitřně nastaví SERIALIZABLE. Toto chování je plně v souladu s normou.
Odlišnosti od normy
![]() | Příkaz ROLLBACK | ![]() | Transakce a body návratu | Příkaz SAVEPOINT | ![]() |