Verwenden impliziter Cursorkonvertierungen

Anwendungen können einen Cursortyp anfordern und anschließend eine Transact-SQL-Anweisung ausführen, die nicht von Servercursorn des angeforderten Typs unterstützt wird. Microsoft SQL Server 2005 gibt einen Fehler zurück, der angibt, dass sich der Cursortyp geändert hat. Diese Konvertierung wird als implizite Cursorkonvertierung bezeichnet oder auch als Cursordegradierung.

Es folgen die Faktoren, durch die SQL Server implizit einen Cursor aus einem Typ in einen anderen konvertiert.

Schritt Konvertierung ausgelöst durch Vorwärtscursor Keysetgesteuerter Cursor Dynamischer Cursor Wechseln zu Schritt

1

Die FROM-Klausel der Abfrage verweist auf keine Tabellen.

Wird statisch.

Wird statisch.

Wird statisch.

Fertig

2

Die Abfrage enthält: Auswahllistenaggregate GROUP BY UNION DISTINCT HAVING

Wird statisch.

Wird statisch.

Wird statisch.

Fertig

3

Die Abfrage generiert eine interne Arbeitstabelle (beispielsweise werden die Spalten einer ORDER BY-Klausel nicht von einem Index erfasst).

Wird zum Keyset.

 

Wird zum Keyset.

5

4

Die Abfrage verweist auf Remotetabellen in Verbindungsservern.

Wird zum Keyset.

 

Wird zum Keyset.

5

5

Die Abfrage verweist auf mindestens eine Tabelle ohne einen eindeutigen Index. Nur Transact-SQL-Cursor.

 

Wird statisch.

 

Fertig

ms190641.note(de-de,SQL.90).gifHinweis:
Schnelle Vorwärtscursor werden niemals konvertiert.
ms190641.note(de-de,SQL.90).gifHinweis:
Keysetgesteuerte- und dynamische Cursor werden nur konvertiert, wenn eine der zugrunde liegenden Basistabellen keinen eindeutigen Index aufweist oder die Abfrage die Schlüsselspalten der Basistabellen nicht direkt zurückgibt. Dies geschieht z. B., wenn die Abfrage Aggregatfunktionen oder Mengenoperatoren enthält.

Siehe auch

Andere Ressourcen

Implicit Cursor Conversions (ODBC)

Hilfe und Informationen

Informationsquellen für SQL Server 2005