Trabalhando com Cursor no SQL Server

Trabalhando com Cursor no SQL Server

cursor 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.

VEJA TAMBÉM  Como Importar do Excel para SQL Server

Se desejar ver mais sobre cursores acesse:

Loading


Publicação Criada em: janeiro 21, 2014
Sem atualizações registradas.

Deixe um comentário

Índice