カーソルの種類 (データベース エンジン)
ODBC と ADO は、Microsoft SQL Server 2005 によってサポートされる 4 種類のカーソルを定義します。DECLARE CURSOR ステートメントが拡張されたので、Transact-SQL カーソルのこれら 4 種類のカーソルを指定できるようになりました。これらのカーソルは、結果セットへの変更を検出する機能や、メモリや tempdb 中の領域など、カーソルが消費するリソースにおいてそれぞれ異なります。カーソルが行への変更を検出できるのは、それらの行を 2 回目にフェッチしようとしたときだけです。現在フェッチされている行への変更をデータ ソースがカーソルに通知する方法はありません。変更を検出するカーソルの機能は、トランザクション分離レベルによっても影響されます。
SQL Server によってサポートされている 4 種類の API サーバー カーソルを次に示します。
- 静的カーソル
- 動的カーソル
- 順方向専用カーソル
- キーセット ドリブン カーソル
静的カーソルは変更をほとんど検出しませんが、スクロール中に消費するリソースは比較的少なくなります。動的カーソルはすべての変更点を検出しますが、スクロール中に消費するリソースは多くなります。キーセット ドリブン カーソルは静的カーソルと動的カーソルの中間的な特徴を持ち、ほとんどの変更を検出しますが、リソースの消費量は動的カーソルより少なくなります。
SQL Server は、データベース API のカーソル モデルとは異なり、順方向専用カーソルを異なる種類のカーソルと見なしません。SQL Server は、順方向専用とスクロールの両方を、静的カーソル、キーセット ドリブン カーソル、および動的カーソルに適用できるオプションと見なします。
参照
その他の技術情報
DECLARE CURSOR (Transact-SQL)
行セットと SQL Server カーソル
カーソルの実装方法