Kursor dan Isolasi Transaksi yang Dapat Digulirkan
Tabel berikut mencantumkan faktor-faktor yang mengatur visibilitas perubahan.
Perubahan yang dibuat oleh: | Visibilitas bergantung pada: |
---|---|
Kursor | Jenis kursor, implementasi kursor |
Pernyataan lain dalam transaksi yang sama | Tipe kursor |
Pernyataan dalam transaksi lain | Jenis kursor, tingkat isolasi transaksi |
Faktor-faktor ini ditampilkan dalam ilustrasi berikut.
Tabel berikut ini meringkas kemampuan setiap jenis kursor untuk mendeteksi perubahan yang dibuat dengan sendirinya, oleh operasi lain dalam transaksinya sendiri, dan oleh transaksi lainnya. Visibilitas perubahan terakhir tergantung pada jenis kursor dan tingkat isolasi transaksi yang berisi kursor.
Jenis kursor\tindakan | Self | Sendiri Txn |
Othr Txn (RU[a]) |
Othr Txn (RC[a]) |
Othr Txn (RR[a]) |
Othr Txn (S[a]) |
---|---|---|---|---|---|---|
Statis | ||||||
Sisipkan | Mungkin[b] | Tidak | No | No | No | Tidak |
Update | Mungkin[b] | Tidak | No | No | No | Tidak |
Delete | Mungkin[b] | Tidak | No | No | No | Tidak |
Berbasis set kunci | ||||||
Sisipkan | Mungkin[b] | Tidak | No | No | No | Tidak |
Update | Ya | Ya | Ya | Ya | No | Tidak |
Delete | Mungkin[b] | Ya | Ya | Ya | No | Tidak |
Dinamis | ||||||
Sisipkan | Ya | Ya | Ya | Ya | Ya | Tidak |
Update | Ya | Ya | Ya | Ya | No | Tidak |
Delete | Ya | Ya | Ya | Ya | No | Tidak |
[a] Huruf dalam tanda kurung menunjukkan tingkat isolasi transaksi yang berisi kursor; tingkat isolasi transaksi lain (di mana perubahan dilakukan) tidak relevan.
RU: Baca tidak dikomit
RC: Baca diterapkan
RR: Bacaan berulang
S: Dapat diserialisasi
[b] Tergantung pada bagaimana kursor diimplementasikan. Apakah kursor dapat mendeteksi perubahan tersebut dilaporkan melalui opsi SQL_STATIC_SENSITIVITY di SQLGetInfo.