se si codifica il ciclo con il recupero in basso (con il recupero iniziale prima del ciclo) continua si salterà in cima e si elaborerà nuovamente la stessa riga. è possibile utilizzare un GOTO per saltare alla parte di recupero in basso o ristrutturare il ciclo per recuperare in alto e il cointinue funzionerà.
è possibile modificare il ciclo di usare GOTO ...
...
...
if <condition>
BEGIN
GOTO Fetch_Next
END
....
....
Fetch_Next:
FETCH NEXT FROM ...
Ecco alcuni esempi di codice per un solo recuperare in cima alla ciclo, continua funzionerà:
DECLARE <cursor_name> CURSOR FOR
SELECT
FROM
WHERE
FOR READ ONLY
--populate and allocate resources to the cursor
OPEN <cursor_name>
--process each row
WHILE 1=1
BEGIN
FETCH NEXT FROM <cursor_name>
INTO @a, @b, @c
--finished fetching all rows?
IF @@FETCH_STATUS <> 0
BEGIN --YES, all done fetching
--exit the loop
BREAK
END --IF finished fetching
--do something here--
--do something here--
IF <your condition>
BEGIN
CONTINUE -- fetch next row
END
--do something here--
--do something here--
END --WHILE
--close and free the cursor's resources
CLOSE <cursor_name>
DEALLOCATE <cursor_name>
fonte
2009-07-24 17:49:32
Grazie questa è la risposta corretta. – codingguy3000