|
![]() | ProblΘmy p°i kombinaci explicitnφho zamykßnφ zßznam∙ a izolace transakcφ | ![]() | Transakce a body nßvratu | P°φkaz COMMIT | ![]() |
p°φkaz_START_TRANSACTION ::= START TRANSACTION [ popis_transakce {, popis_transakce } ]
popis_transakce ::= ISOLATION LEVEL izolace | druh_transakce
izolace ::= READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE
druh_transakce ::= READ ONLY | READ WRITE
Tento p°φkaz zahajuje novou transakci a urΦuje jejφ druh a stupe≥ izolace od ostatnφch soub∞₧n∞ probφhajφcφch transakcφ. Transakce trvß a₧ do provedenφ p°φkazu COMMIT nebo ROLLBACK.
Druh transakce a stupe≥ izolace sm∞jφ b²t uvedeny nejv²Üe jednou. 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 transakce ji₧ zahßjena, nastane chybov² sqlstate 25001. Je-li druh transakce READ ONLY, nelze v transakci provΘst p°φkazy UPDATE, DELETE ani INSERT, jinak nastane chybov² sqlstate 25006.
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.
RozÜφ°enφ jazyka SQL proti norm∞
![]() | ProblΘmy p°i kombinaci explicitnφho zamykßnφ zßznam∙ a izolace transakcφ | ![]() | Transakce a body nßvratu | P°φkaz COMMIT | ![]() |