Sdílet prostřednictvím


Posuvné kurzory a izolace transakcí

Následující tabulka uvádí faktory, které řídí viditelnost změn.

Změny provedené: Viditelnost závisí na:
Cursor Typ kurzoru, implementace kurzoru
Jiné příkazy ve stejné transakci Typ kurzoru
Výkazy v jiných transakcích Typ kurzoru, úroveň izolace transakcí

Tyto faktory jsou znázorněny na následujícím obrázku.

Faktory řízení viditelnosti změn

Následující tabulka shrnuje schopnost každého typu kurzoru detekovat změny provedené samostatně, jinými operacemi ve své vlastní transakci a jinými transakcemi. Viditelnost těchto změn závisí na typu kurzoru a na úrovni izolace transakce obsahující kurzor.

Typ kurzoru\akce Self Vlastnit

Txn
Othr

Txn

(RU[a])
Othr

Txn

(RC[a])
Othr

Txn

(RR[a])
Othr

Txn

(S[a])
Statický.
Vložit Možná[b] Ne Ne Ne Ne Ne
Update Možná[b] Ne Ne Ne Ne Ne
Delete Možná[b] Ne Ne Ne Ne Ne
Založená na klíčových sadách
Vložit Možná[b] Ne Ne Ne Ne Ne
Update Ano Ano Ano Ano Ne Ne
Delete Možná[b] Ano Ano Ano Ne Ne
Dynamický
Vložit Ano Ano Ano Ano Ano Ne
Update Ano Ano Ano Ano Ne Ne
Delete Ano Ano Ano Ano Ne Ne

[a] Písmena v závorkách označují úroveň izolace transakce obsahující kurzor; úroveň izolace druhé transakce (ve které byla změna provedena) je irelevantní.

RU: Nepotvrzené čtení

RC: Potvrzení čtení

RR: Opakovatelné čtení

S: Serializovatelná

[b] Závisí na způsobu implementace kurzoru. Zda kurzor dokáže takové změny rozpoznat, je hlášen prostřednictvím možnosti SQL_STATIC_SENSITIVITY v SQLGetInfo.