Cursorschleife feststellen wieviele Zeilen im Ergebnisset des Cursors sind

24/06/2009 - 11:14 von Frederick Steinke | Report spam
Hallo,

ich habe einen Fast_FORWARD Cursor und möchte jetzt wissen nachdem der
Cursor OPEN ist wieviele Rows im Cursor sind.

Gibt dazu ja @@CURSOR_ROWS allerdings steht da nicht wie in der DOku
beschrieben die Zeilenanzahl sondern eine -1.

Dies ist nur bei FAST_FORWARD der Fall.

Gibts da noch ne andere Methode oder besser wie klaptts mit @@CURSOR_ROWS ?

Danke für jeden Tip.

Frederick
 

Lesen sie die antworten

#1 Elmar Boye
24/06/2009 - 11:58 | Warnen spam
Hallo Frederik,

Frederick Steinke schrieb:
ich habe einen Fast_FORWARD Cursor und möchte jetzt wissen nachdem der
Cursor OPEN ist wieviele Rows im Cursor sind.



Bei einem FAST_FORWARD Cursor weiß man die Anzahl erst am Ende,
denn er liest die Daten, so wie sie verarbeitet werden.

Gibt dazu ja @@CURSOR_ROWS allerdings steht da nicht wie in der DOku
beschrieben die Zeilenanzahl sondern eine -1.



Das ist bei dem Cursortyp normal, die Information steht
nur bei Cursor zur Verfügung die beim Öffnen vollstàndig
eingelesen werden, wie z. B. STATIC/KEYSET.

Gibts da noch ne andere Methode oder besser wie klaptts mit @@CURSOR_ROWS ?



Wozu brauchst Du die Information?
Denn das Ermitteln der Information dauert zusàtzliche Zeit
und belegt Ressourcen. So legt ein STATIC/KEYSET Cursor eine
Arbeitstabelle in der tempdb an.

Und wenn Du nur durch die Daten laufen willst, braucht Du
die Anzahl nicht, dafür reicht ein Prüfen von @@FETCH_STATUS:
http://msdn.microsoft.com/de-de/lib...87308.aspx

Gruß Elmar

Ähnliche fragen