Udostępnij przez


Przewijanie kursorów i izolacja transakcji

W poniższej tabeli wymieniono czynniki wpływające na widoczność zmian.

Zmiany wprowadzone przez: Widoczność zależy od:
Cursor Typ kursora, implementacja kursora
Inne instrukcje w tej samej transakcji Typ kursora
Wyciągi w innych transakcjach Typ kursora, poziom izolacji transakcji

Te czynniki przedstawiono na poniższej ilustracji.

Czynniki wpływające na widoczność zmian

W poniższej tabeli podsumowano zdolność każdego typu kursora do wykrywania zmian wprowadzonych przez siebie, innych operacji w ramach własnej transakcji i innych transakcji. Widoczność tych ostatnich zmian zależy od typu kursora i poziomu izolacji transakcji zawierającej kursor.

Typ kursora\akcja Self Posiadać

Txn
Othr

Txn

(RU[a])
Othr

Txn

(RC[a])
Othr

Txn

(RR[a])
Othr

Txn

(S[a])
Statyczny
Wstawiać Być może[b] Nie. Nie. Nie. Nie. Nie.
Update Być może[b] Nie. Nie. Nie. Nie. Nie.
Usuń Być może[b] Nie. Nie. Nie. Nie. Nie.
Zarządzane zestawem kluczy
Wstawiać Być może[b] Nie. Nie. Nie. Nie. Nie.
Update Tak Tak Tak Tak Nie. Nie.
Usuń Być może[b] Tak Tak Tak Nie. Nie.
Dynamiczny
Wstawiać Tak Tak Tak Tak Tak Nie.
Update Tak Tak Tak Tak Nie. Nie.
Usuń Tak Tak Tak Tak Nie. Nie.

[a] Litery w nawiasach wskazują poziom izolacji transakcji zawierającej kursor; poziom izolacji innej transakcji (w której wprowadzono zmianę) jest nieistotny.

RU: Odczyt niezatwierdzony

RC: Odczyt zatwierdzony

RR: powtarzalny odczyt

S: Serializowalny (Serializable)

[b] Zależy od sposobu implementacji kursora. Czy kursor może wykryć takie zmiany, jest zgłaszany za pośrednictwem opcji SQL_STATIC_SENSITIVITY w programie SQLGetInfo.