Neste post vou mostrar como funciona um cursor no Microsoft SQL Server de maneira bem simples.
Um curso é muito útil em casos em que se necessita de loop por
exemplo, uma função para inserir registros no banco que dependem de uma
outra consulta, por exemplo, onde pra cada resultado dessa primeira
consulta, alguma ação será realizada, ou então para efetuar alguma ação,
com condições, por exemplo, apagar um determinado tipo de tabela, caso
ela tenha mais de x registros.
Bom, segue um exemplo básico:
-- declarações de variáveis DECLARE @COD_CONTA INTEGER DECLARE @DESC_CONTA VARCHAR(256) DECLARE @SALDO DECIMAL -- declaração e criação do curso com os dados resultantes da select. DECLARE db_cursor CURSOR FOR SELECT cod_conta, desc_conta, saldo FROM tbcontas WHERE saldo > 0 -- abre o cursor OPEN db_cursor FETCH NEXT FROM db_cursor INTO @COD_CONTA, @DESC_CONTA, @SALDO --atribui o valor do 1º registro do cursor as variáveis WHILE @@FETCH_STATUS = 0 --Percorre enquanto houver registros BEGIN -- AQUI será realizada as operações que você quiser com os dados obtidos no registro do cursor. insert into tbContaPositiva(cod_conta, desc_conta, saldo) values (@COD_CONTA, @DESC_CONTA, @SALDO) delete from tbContas where cod_conta = @COD_CONTA print 'Conta ' + @DESC_CONTA ' + Transferida com Sucesso' --atribui o valor do próximo registro do cursor as variáveis FETCH NEXT FROM db_cursor INTO @COD_CONTA, @DESC_CONTA, @SALDO END CLOSE db_cursor --fecha e limpa o cursor. DEALLOCATE db_cursor
Bom, essa é a ideia do cursor.
Agora é só montar de acordo com o seu cenário.
Créditos: Lucas Mendes
Agora é só montar de acordo com o seu cenário.
Créditos: Lucas Mendes
0 comentários:
Postar um comentário