次の方法で共有


カーソルの種類

適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

ODBC では、Microsoft SQL Server と SQL Server Native Client ODBC ドライバーでサポートされる 4 種類のカーソルが定義されています。 これらのカーソルは、結果セットへの変更を検出する機能と、 tempdb 内のメモリや領域など、消費するリソースによって異なります。 カーソルが行への変更を検出できるのは、変更が加えられた行の再フェッチを試みたときだけです。現在フェッチしている行への変更を、データ ソースからカーソルに通知する方法はありません。 カーソルを使用して行われなかった変更を検出する機能は、トランザクション分離レベルによって異なる場合があります。

SQL Server でサポートされている 4 つの ODBC カーソルの種類を次に示します。

  • 順方向専用カーソルではスクロールがサポートされず、カーソルの最初から最後まで行を順番にフェッチする機能だけがサポートされます。

  • 静的カーソルは、カーソルを開いたときにtempdb に組み込まれます。 静的カーソルは、常に、カーソルを開いた時点の結果セットを表示します。 データへの変更は反映されません。 SQL Server の静的カーソルは常に読み取り専用です。 静的サーバー カーソルは tempdb の作業テーブルとして作成されるため、カーソルの結果セットのサイズは、SQL Server で許可されている最大行サイズを超えることはできません。

  • キーセット ドリブン カーソルでは、カーソルを開くときに、結果セット内の行のメンバーシップと順序が固定されます。 非キー列の変更は、このカーソルを使用して表示されます。

  • 動的カーソルは静的カーソルと対照的です。 動的カーソルでは、結果セット内の行に対するすべての変更が反映されます。 結果セット内の行のデータ値、順序、およびメンバーシップは、フェッチを実行するたびに変化する可能性があります。

参照

カーソルの使用 (ODBC)