カーソルの種類 (データベース エンジン)

ODBC と ADO は、Microsoft SQL Server によってサポートされる 4 種類のカーソルを定義します。DECLARE CURSOR ステートメントが拡張されたので、Transact-SQL カーソルのこれら 4 種類のカーソルを指定できるようになりました。これらのカーソルは、結果セットへの変更を検出する機能や、メモリや tempdb 中の領域など、カーソルが消費するリソースにおいてそれぞれ異なります。カーソルが行への変更を検出できるのは、それらの行を 2 回目にフェッチしようとしたときだけです。現在フェッチされている行への変更をデータ ソースがカーソルに通知する方法はありません。変更を検出するカーソルの機能は、トランザクション分離レベルによっても影響されます。

SQL Server によってサポートされている 4 種類の API サーバー カーソルを次に示します。

  • 静的カーソル

  • 動的カーソル

  • 順方向専用カーソル

  • キーセット ドリブン カーソル

静的カーソルは変更をほとんど検出しませんが、スクロール中に消費するリソースは比較的少なくなります。動的カーソルはすべての変更点を検出しますが、スクロール中に消費するリソースは多くなります。キーセット ドリブン カーソルは静的カーソルと動的カーソルの中間的な特徴を持ち、ほとんどの変更を検出しますが、リソースの消費量は動的カーソルより少なくなります。

SQL Server は、データベース API のカーソル モデルとは異なり、順方向専用カーソルを異なる種類のカーソルと見なしません。SQL Server は、順方向専用とスクロールの両方を、静的カーソル、キーセット ドリブン カーソル、および動的カーソルに適用できるオプションと見なします。