可滚动游标和事务隔离

下表列出了控制更改可见性的因素。

更改者: 可见性取决于:
Cursor 游标类型,游标实现
同一事务中的其他语句 游标类型
其他事务中的声明 游标类型,事务隔离级别

下图显示了这些因素。

控制更改可见性的因素

下表汇总了每个游标类型能够检测自身所做的更改、其自身事务中的其他操作所做的更改以及其他事务所做的更改。 后者可见性的变化取决于游标的类型和包含该游标的事务的隔离级别。

游标类型\操作 Self

Txn
Othr

Txn

(RU[a])
Othr

Txn

(RC[a])
Othr

Txn

(RR[a])
Othr

Txn

(S[a])
Static
插入 可能[b]
Update 可能[b]
删除 可能[b]
键集驱动的
插入 可能[b]
Update 是的 是的 是的 是的
删除 可能[b] 是的 是的 是的
动态
插入 是的 是的 是的 是的 是的
Update 是的 是的 是的 是的
删除 是的 是的 是的 是的

[a] 括号中的字母指示包含游标的事务的隔离级别;其他事务的隔离级别(在其中进行更改)无关紧要。

RU:读取未提交

RC:读已提交

RR:可重复读取

S:可序列化

[b] 取决于游标的实现方式。 游标是否可以通过 SQLGetInfo 中的SQL_STATIC_SENSITIVITY选项报告此类更改。