Utilizando cursores

Muitas vezes necessitamos tratar registro a registro os valores retornados por uma query dentro de um bloco de instruções SQL. Os cursores são ótimos para fazer isto.

Abaixo segue um exemplo essencial de cursor no MS SQLSERVER.



--1° Declarar o cursor e variáveis usadas por ele
DECLARE @Cursor1 cursor
DECLARE @TESTE VARCHAR(MAX)
DECLARE @cliente varchar(250)
--2° Setar o cursor
SET @cursor1 = CURSOR FOR SELECT CLIENTE,CONTA FROM Temp1
--3° Abrir o cursor
OPEN @cursor1
--4°Mover o cursor para o primeiro registro
FETCH NEXT FROM @cursor1
INTO @cliente, @Teste

--5°Criar loop para percorrer todos os registros
WHILE (@@FETCH_STATUS = 0)
BEGIN
PRINT @cliente
--6° Mover para o próximo registro
FETCH NEXT FROM @cursor1
INTO @cliente, @Teste
END
--6° Fechar o cursor
CLOSE @cursor1
--7° Desalocar cursor da memória.
DEALLOCATE @cursor1


Tiago Larios

Back To Top