暗黙のカーソル変換の使用

アプリケーションは、ある種類のカーソルを要求した後でも、要求した種類のサーバー カーソルがサポートしていない Transact-SQL ステートメントを実行できます。その場合、Microsoft SQL Server では、カーソルの種類が変更されたことを示すエラーが返されます。この変換を暗黙のカーソル変換と呼びます。また、カーソルの下位変換と呼ばれることもあります。

SQL Server では、次の表に示す要因によって、カーソルがある種類から別の種類へ暗黙的に変換されます。

ステップ

変換を引き起こす要因

順方向専用

キーセット ドリブン

動的

次のステップ

1

クエリの FROM 句でテーブルが参照されていません。

静的カーソルになります。

静的カーソルになります。

静的カーソルになります。

完了

2

クエリに、GROUP BY UNION DISTINCT HAVING を集計する選択リストが含まれています。

静的カーソルになります。

静的カーソルになります。

静的カーソルになります。

完了

3

クエリで内部作業テーブルが生成されます。たとえば、ORDER BY の列がインデックスで対応されない場合などです。

キーセット カーソルになります。

 

キーセット カーソルになります。

5

4

クエリで、リンク サーバー内のリモート テーブルが参照されています。

キーセット カーソルになります。

 

キーセット カーソルになります。

5

5

クエリで、一意インデックスが設定されていないテーブルが少なくとも 1 つ参照されています。Transact-SQL カーソルのみです。

 

静的カーソルになります。

 

完了

注意

高速順方向専用カーソルが変換されることはありません。

注意

基になるベース テーブルに一意インデックスがない場合、またはクエリがベース テーブルのキー列を直接返さない場合は、キーセット カーソルと動的カーソルのみが変換されます。たとえば、クエリに集計関数や set 演算子が指定されている場合などです。