Trabalhando com Cursor no SQL Server
Cursores são mecanismos que permitem que as linhas de uma tabela sejam manipuladas uma a uma. Atuam como ponteiros que apontam para as linhas que formas o resultado de uma dada consulta que é armazenada no cursos. Podemos recuperar e manipular os valores de cada linha apontada por um cursos.
Veja abaixo a sintaxe para criação de um cursor no SQL Server
--drop table tabela_clientes
--go
--create table tabela_clientes(
--nome_cliente varchar(200),
--cpf_cliente varchar(200)
--)
--go
--insert into tabela_clientes values
--('Fabio', NULL),
--('Jorge', 21325658454)
--go
--select * from tabela_clientes
--go
DECLARE
@nome_cliente VARCHAR(50),
@cpf_cliente VARCHAR(50)
--Declarando o cursor
DECLARE nome_do_cursor CURSOR FOR
--dados que o cursos ira trabalhar
SELECT
nome_cliente, cpf_cliente
FROM
tabela_clientes
--abre o cursor
OPEN nome_do_cursor
--posicionar o ponteiro do cursor na primeira linha do resultado do select acima
FETCH NEXT FROM nome_do_cursor
--insere nas variaveis os valores da primeira linha do resultado armazenado no cursor
INTO @nome_cliente, @cpf_cliente
--Esse parte diz "Enquanto tiver linha no cursor, faça:"
WHILE @@FETCH_STATUS = 0
--Nessa parte você insere o bloco de instruções que ira trabalhar no seu cursor.
--Se CPF for igual a nulo
BEGIN
IF ((SELECT cpf_cliente FROM tabela_clientes WHERE cpf_cliente = @cpf_cliente) is NULL)
--Inserir no final do nome da pessoa o texto "Atualizar CPF"
BEGIN
UPDATE tabela_clientes SET nome_cliente = @nome_cliente + ' Atualizar CPF'
END
FETCH NEXT FROM nome_do_cursor
INTO @nome_cliente, @cpf_cliente
END
--Para fechar o cursos você precisar inserir os seguinte comandos
CLOSE nome_do_cursor
DEALLOCATE nome_do_cursor
select * from tabela_clientes
go
Veja um vídeo sobre como Criar um Cursor
Você pode usar Cursor para inúmeras situações.
Se desejar ver mais sobre cursores acesse:
- https://technet.microsoft.com/pt-br/library/ms180169.aspx
- https://www.youtube.com/results?search_query=cursor%20sql%20server&sm=3
Olá! Sou Fabio, criador do blog FabioBmed, um espaço onde compartilho minha paixão por marketing digital, tecnologia, empreendedorismo e, claro, os aprendizados do meu dia a dia. Aqui você encontrará um mix de conteúdos profissionais e pessoais, sempre com insights práticos, dicas úteis e histórias reais.
Com mais de 15 anos de experiência no mercado digital e fundador da FBDigital, minha missão é inspirar e ajudar pessoas e empresas a construírem uma base sólida no universo online. Seja por meio de estratégias de marketing, ferramentas tecnológicas ou reflexões sobre o cotidiano, meu objetivo é transformar desafios em oportunidades.
Além dos conteúdos voltados para negócios e tecnologia, também compartilho momentos do meu dia a dia, ideias que aprendo pelo caminho e até curiosidades que podem fazer a diferença na sua vida. Aqui, cada post reflete minha busca por conhecimento e minha vontade de conectar pessoas e histórias.
Conecte-se comigo e acompanhe tudo sobre marketing, tendências digitais, aprendizados pessoais e muito mais. Juntos, vamos explorar o melhor do mundo digital e da vida cotidiana!
Publicação Criada em: janeiro 21, 2014
Atualizado em: março 19, 2025 6:53 pm


