como percorrer um conjunto de registros de uma seleção?
Por exemplo, digamos que eu tenho alguns registros que desejo percorrer e fazer algo com cada registro. Aqui está uma versão primitiva do meu select:
select top 1000 * from dbo.table
where StatusID = 7
obrigado
sql
sql-server
Funky
fonte
fonte
Respostas:
Usando T-SQL e cursores como este:
fonte
É o que eu tenho feito se você precisar fazer algo iterativo ... mas seria prudente procurar primeiro as operações definidas.
fonte
Pequena alteração na resposta de sam yi (para melhor legibilidade):
fonte
select @TableID = (...)
declaração.Ao usar o cursor, você pode facilmente percorrer os registros individualmente e imprimir registros separadamente ou como uma única mensagem, incluindo todos os registros.
fonte
Apenas outra abordagem, se você estiver bem usando tabelas temporárias. Eu testei isso pessoalmente e não causará nenhuma exceção (mesmo que a tabela temporária não possua nenhum dado).
fonte
COUNT(*)
e a segunda passaCOUNT(*)
para 1 é estranho.WHILE (@COUTNER <= @ROWID)
e não precisa diminuir@ROWID
em cada iteração. Entre o que acontece seROWID
s na sua tabela não forem contínuos (algumas linhas foram excluídas anteriormente).Você pode escolher classificar seus dados e adicionar um ROW_NUMBER e fazer a contagem regressiva até zero enquanto itera seu conjunto de dados.
fonte
Dessa forma, podemos iterar nos dados da tabela.
STRINGTOTABLE é uma função de definição do usuário que analisa dados separados por vírgula e retorna a tabela. obrigado
fonte
Eu acho que este é o exemplo da maneira mais fácil de iterar item.
fonte