Бөлісу құралы:


Прокручиваемые курсоры и изоляция транзакций

В следующей таблице перечислены факторы, определяющие видимость изменений.

Изменения, внесенные в: Видимость зависит от:
Курсор Тип курсора, реализация курсора
Другие операторы в той же транзакции Тип курсора
Операторы в других транзакциях Тип курсора, уровень изоляции транзакций

Эти факторы показаны на следующем рисунке.

Factors governing the visibility of changes

В следующей таблице приведены сведения о способности каждого типа курсора обнаруживать изменения, внесенные самим собой, другими операциями в собственной транзакции и другими транзакциями. Видимость последних изменений зависит от типа курсора и уровня изоляции транзакции, содержащей курсор.

Тип курсора\action Self Владелец

Txn
Отр

Txn

(RU[a])
Отр

Txn

(RC[a])
Отр

Txn

(RR[a])
Отр

Txn

(S[a])
Статические
Insert Может быть[b] No No No No No
Обновить Может быть[b] No No No No Нет
Удаление Может быть[b] No No No No No
Управляемый набором ключей
Insert Может быть[b] No No No No No
Обновить Да Да Да Да No Нет
Удаление Может быть[b] Да Да Да No No
Динамический
Insert Да Да Да Да Да Нет
Обновить Да Да Да Да No Нет
Удаление Да Да Да Да No No

[a] Буквы в скобках указывают уровень изоляции транзакции, содержащей курсор; Уровень изоляции другой транзакции (в которой было сделано изменение) не имеет значения.

RU: чтение незафиксированного

RC: чтение зафиксировано

RR: повторяемое чтение

S: Сериализуемая

[b] Зависит от того, как реализуется курсор. Сообщается ли курсор об обнаружении таких изменений с помощью параметра SQL_STATIC_SENSITIVITY в SQLGetInfo.