Basic-syntax FÜR die UPDATE-cursor

Ok, ich bin sicherlich vertraut mit gehen durch eine Tabelle mit nur-lese-cursor, aber ich kann nicht scheinen, um herauszufinden, die richtige syntax für tatsächlich Aktualisierung der aktuellen Zeile (Weder die cursor Seite noch die UPDATE-Seite in der Onlinedokumentation scheint zu zeigen, dieser einfache Vorgang):

DECLARE @counter int;
SET @counter = 1;
DECLARE myCursor CURSOR FOR
        SELECT RowID, Value FROM myTable
        FOR UPDATE OF Value;
OPEN myCursor;
WHILE @counter < 100
    FETCH NEXT FROM myCursor
    UPDATE myCursor SET Value = @Counter << DOESN'T WORK 
    SET @counter = @counter + 1
END
CLOSE myCursor
DEALLOCATE myCursor

Ich habe auch versucht nur SET Value = @Counter und mit einem INTO @Value auf der FETCH, aber konnte nicht scheinen, um die Arbeit entweder.

Dies ist natürlich stark vereinfacht, es gibt viel effizientere Wege, nur mit "count" in eine Spalte. Ich will Sie nicht langweilen mit der eigentlichen Berechnung.

Ja, ich brauche einen cursor und nicht ein UPDATE auf die komplette Tabelle (der Wert für jede aufeinander folgende Zeile wird basierend auf einer Berechnung, hängt von der vorherigen Zeile schon geschrieben).

Testen Sie diese zunächst auf SQL 2005, aber ich muss einen port, den code zu SQL 2000 und 2008. Danke!

InformationsquelleAutor BradC | 2010-12-21

Schreibe einen Kommentar