Usuário com melhor resposta
Percorrer registros tabela SQL

Pergunta
-
Respostas
-
Rafael,
Percorrer linha a linha uma query no SQL Server não é recomendado... Isso se chama Cursor based. Entretanto, se voce desejar REALMENTE fazer isso, utilize um cursor no SQL Server, mas lembre-se de tomar cuidado com a performance.
Veja um exemplo básico retirado do Books Online:
DECLARE authors_cursor CURSOR FOR SELECT * FROM authors OPEN authors_cursor FETCH NEXT FROM authors_cursor
Roberto Fonseca MCT / MCITP - Database Administrator 2008 MCITP - Database Developer 2008 MCITP - Business Intelligence 2008
- Marcado como Resposta Rafael Teixeira I Silva quarta-feira, 4 de dezembro de 2013 18:48
Todas as Respostas
-
Rafael, qual sua real necessidade?
Você consegue fazer utilizando Fetch, porém dependendo do tamanho da tabela pode tornar o processamento muito demorado.
"A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski
-
Rafael,
Percorrer linha a linha uma query no SQL Server não é recomendado... Isso se chama Cursor based. Entretanto, se voce desejar REALMENTE fazer isso, utilize um cursor no SQL Server, mas lembre-se de tomar cuidado com a performance.
Veja um exemplo básico retirado do Books Online:
DECLARE authors_cursor CURSOR FOR SELECT * FROM authors OPEN authors_cursor FETCH NEXT FROM authors_cursor
Roberto Fonseca MCT / MCITP - Database Administrator 2008 MCITP - Database Developer 2008 MCITP - Business Intelligence 2008
- Marcado como Resposta Rafael Teixeira I Silva quarta-feira, 4 de dezembro de 2013 18:48
-
Eu evito o uso do cursor. Prefiro utilizar o While.
declare @count bigint set rowcount 0 select au_id,au_lname,au_fname into #mytemp from authors set rowcount 1 select @count = au_id from #mytemp while @@rowcount <> 0 begin set rowcount 0 select au_id,au_lname,au_fname from #mytemp where au_id = @count delete #mytemp where au_id = @count set rowcount 1 select @count = au_id from #mytemp end set rowcount 0