CURSOR do SQL Server

Resumo: neste tutorial, você aprenderá como usar o cursor do SQL Server para processar um conjunto de resultados, uma linha por vez.

O SQL funciona com base no conjunto, por exemplo, a instrução SELECT retorna um conjunto de linhas que é chamado de conjunto de resultados. No entanto, às vezes, você pode querer processar um conjunto de dados linha por linha. É aqui que os cursores entram em jogo.

O que é um cursor de banco de dados

Um cursor de banco de dados é um objeto que permite percorrer as linhas de um conjunto de resultados. Ele permite que você processe linhas individuais retornadas por uma consulta.

Ciclo de vida do cursor do SQL Server

Estas são as etapas para usar um cursor:

Primeiro, declare um cursor.

Code language: SQL (Structured Query Language) (sql)

Para declarar um cursor, você especifica seu nome após a DECLARE palavra-chave com o tipo de dados CURSOR e fornece um SELECT instrução que define o conjunto de resultados para o cursor.

Em seguida, abra e preencha o cursor executando SELECT instrução:

Code language: SQL (Structured Query Language) (sql)

Em seguida, busque uma linha do cursor em uma ou mais variáveis:

Code language: SQL (Structured Query Language) (sql)

O SQL Server fornece a função @@FETCHSTATUS que retorna o status da última instrução do cursor FETCH executada contra o cursor; Se @@FETCHSTATUS retornar 0, significa que a instrução FETCH foi bem-sucedida. Você pode usar a instrução WHILE para buscar todas as linhas do cursor conforme mostrado no seguinte código:

Code language: SQL (Structured Query Language) (sql)

Depois disso, feche o cursor:

Code language: SQL (Structured Query Language) (sql)

Por fim, desaloque o cursor:

Code language: SQL (Structured Query Language) (sql)

Exemplo de cursor do SQL Server

Usaremos a tabela prodution.products do banco de dados de exemplo para mostrar como usar um cursor:

Primeiro, declare duas variáveis para conter o nome do produto e o preço de lista, e um cursor para manter o resultado de uma consulta que recupera o nome do produto e o preço de lista da tabela production.products:

Em seguida, abra o cursor:

Code language: SQL (Structured Query Language) (sql)

Em seguida, busque cada linha do cursor e imprima o nome do produto e o preço de tabela:

Depois disso, feche o cursor:

Code language: SQL (Structured Query Language) (sql)

Por fim, desaloque o cursor para liberá-lo.

Os seguintes snippets de código colocam tudo junto:

Aqui está a saída parcial:

Na prática, você raramente usará o cursor para processar um conjunto de resultados linha por linha.

Neste tutorial, você aprendeu como usar o cursor do SQL Server para processar um conjunto de resultados, cada linha por vez.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *