Para percorrer registros de uma tabela ou query, podemos utilizar a funcionalidade do Sql Server de criação de cursor. Abaixo um exemplo:
CREATE TABLE #teste (
id INT,
nome VARCHAR(50),
data DATETIME)
INSERT #teste
(id,
nome,
data)
VALUES(1,'Joao','2008-01-01')
INSERT #teste
(id,
nome,
data)
VALUES(1,'Maria','2008-02-01')
INSERT #teste
(id,
nome,
data)
VALUES(1,'Mane','2008-03-01')
DECLARE @id INT
DECLARE @nome VARCHAR(50)
DECLARE @data DATETIME
DECLARE db_cursor CURSOR FOR
SELECT *
FROM #teste
OPEN db_cursor
FETCH NEXT FROM db_cursor
INTO @id,
@nome,
@data
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT ('CODIGO:' + Cast(@ID AS VARCHAR(5)) + ' NOME:' + @NOME + ' DATA:' + Cast(@DATA AS VARCHAR(25)))
FETCH NEXT FROM db_cursor
INTO @id,
@nome,
@data
END
CLOSE db_cursor
DEALLOCATE db_cursor
DROP TABLE #teste
No exemplo acima, criamos uma tabela temporária, e usamos o comando "print" para exibir os dados da tabela, percorrendo os registros através de um cursor.
Fala Fera!
ResponderExcluirParabéns pelo blog. É bom lembrar que cursores devem ser sempre aquela úúúúúúúltima opção, por cuasa da performance..
Abraços!
Zé Filipe
Com certeza Filipe, bem lembrado.
ResponderExcluirCursores podem ser uma solução para diversos problemas, mas quando o objetivo é performance, o melhor é procurar outras alternativas.