A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Banco de Dados CURSOR.

Apresentações semelhantes


Apresentação em tema: "Banco de Dados CURSOR."— Transcrição da apresentação:

1 Banco de Dados CURSOR

2 PROGRAMAÇÃO EM BANCO DE DADOS
Código Armazenado Cursor Operações com conjunto de linhas definem um banco de dados relacional Um conjunto pode ser vazio ou conter N linhas Apesar das extensões fornecidas pelo T-SQL algumas operações possuem alto custo ou mesmo são inviáveis por operações de conjunto Os cursores ajudam a trabalhar com essas situações Possibilitando diversas operações

3 PROGRAMAÇÃO EM BANCO DE DADOS
Código Armazenado Cursor O SQL Server possui três tipos de cursores Cursor T-SQL – Foco do nosso estudo Cursor API – Application Programming Interface) Curor de cliente Os cursores T-SQL são criados usando o comando DECLARE CURSOR São usados principalmente em procedimento armazenados São associados a um comando SQL

4 PROGRAMAÇÃO EM BANCO DE DADOS
Código Armazenado Cursor Processo para utilização de um cursor Declare variáveis para conter os dados retornados pelo cursor. Associe o cursor a uma instrução SELECT que usa a instrução DECLARE CURSOR Use a instrução OPEN para executar a instrução SELECT Use a instrução FETCH INTO para buscar linhas individuais Isso moverá os dados de cada coluna para variáveis específicas Feche o cursor – evitando estouro de memória

5 PROGRAMAÇÃO EM BANCO DE DADOS
Código Armazenado Cursor Declarar variável do tipo CURSOR Sintaxe – Padrão ISO DECLARE cursor_name [ INSENSITIVE ] [ SCROLL ] CURSOR FOR select_statement [ FOR { READ ONLY | UPDATE [ OF column_name [ ,...n ] ] } ]

6 PROGRAMAÇÃO EM BANCO DE DADOS
Código Armazenado Cursor Declarar variável do tipo CURSOR Sintaxe – Extensão SQL Server DECLARE cursor_name CURSOR [ LOCAL | GLOBAL ] [ FORWARD_ONLY | SCROLL ] [ STATIC | KEYSET | DYNAMIC | FAST_FORWARD ] [ READ_ONLY | SCROLL_LOCKS | OPTIMISTIC ] [ TYPE_WARNING ] FOR select_statement [ FOR UPDATE [ OF column_name [ ,...n ] ] ]

7 PROGRAMAÇÃO EM BANCO DE DADOS
Código Armazenado Cursor Argumentos Cursor_name  nome/identificador do cursor INSENTITIVE  Define um cursor que faz uma cópia temporária dos dados SCROLL  define que todas opções de busca podem ser realizadas (first, last, next, prior, relative, absolute) SELECT  instrução SQL que será associada ao cursor READ ONLY  previne para que o cursor não faça atualizações

8 PROGRAMAÇÃO EM BANCO DE DADOS
Código Armazenado Cursor Argumentos UPDATE [OF nome_coluna [, ... n]]  define as colunas atualizáveis em um cursor LOCAL  Especifica que o escopo do cursor é local, ou seja, dentro do código armazenado em que foi criado GLOBAL  especifica que o cursor é global para a conexão FORWARD_ONLY  especifica que o cursor só pode ser rolado da primeira à última linha (FETCH NEXT) STATIC  define um cursor que faz cópia dos dados

9 PROGRAMAÇÃO EM BANCO DE DADOS
Código Armazenado Cursor Argumentos KEYSET  especifica que a associação e a ordem de linhas no cursor são fixas DYNAMIC  o cursor reflete todas as mudanças feitas às linhas no seu conjunto de resultados FAST_FORWARD  especifica um cursor FORWARD, READ ONLY, com otimizações de desempenho READ_ONLY  previne atualizações feitas por este cursor

10 PROGRAMAÇÃO EM BANCO DE DADOS
Código Armazenado Cursor Argumentos SCROLL_LOCKS  especifica se atualizações posicionadas ou exclusões feitas pelo cursor têm garantia de execução OPTMISTIC  especifica que as atualizações ou exclusões feitas pelo cursor não terão êxito se a linha tiver sido atualizada desde que foi lida no cursor TYPE_WARNING  especifica que uma mensagem de aviso é enviada ao cliente quando o cursor é convertido implicitamente em outro a partir do tipo solicitado.

11 PROGRAMAÇÃO EM BANCO DE DADOS
Código Armazenado Cursor Argumentos SELECT_STATEMENT  instrução SQL padrão que define o conjunto de resultados de um cursor FOR UPDATE [OF column_name [,...n]]  define colunas atualizáveis em um cursor.

12 PROGRAMAÇÃO EM BANCO DE DADOS
Código Armazenado Cursor Comentários DECLARE CURSOR define os atributos de um cursor de servidor TRANSACT-SQL A instrução OPEN popula o conjunto de resultados e o FETCH retorna uma linha de resultados A instrução CLOSE libera o conjunto de resultados atual associados associado com o cursor. A instrução DEALLOCATE libera os recursos usados pelo cursor

13 PROGRAMAÇÃO EM BANCO DE DADOS
Código Armazenado Cursor Exemplos Usando a sintaxe e o cursor simples DECLARE vend_cursor CURSOR     FOR SELECT * FROM Purchasing.Vendor OPEN vend_cursor FETCH NEXT into variaveis;

14 PROGRAMAÇÃO EM BANCO DE DADOS
Código Armazenado Cursor Exemplos Usando cursores aninhados para produzir saída de relatório

15 DECLARE product_cursor CURSOR FOR SELECT v.Name
SET NOCOUNT ON; nvarchar(50); PRINT ' Vendor Products Report '; DECLARE vendor_cursor CURSOR FOR SELECT VendorID, Name FROM Purchasing.Vendor WHERE PreferredVendorStatus = 1 ORDER BY VendorID; OPEN vendor_cursor FETCH NEXT FROM WHILE = 0 BEGIN PRINT ' ' = '----- Products From Vendor: ' -- Declare an inner cursor based -- on vendor_id from the outer cursor. DECLARE product_cursor CURSOR FOR SELECT v.Name FROM Purchasing.ProductVendor pv, Production.Product v WHERE pv.ProductID = v.ProductID AND pv.VendorID -- Variable value from the outer cursor OPEN product_cursor FETCH NEXT FROM product_cursor IF <> 0 PRINT ' <<None>>' WHILE = 0 BEGIN = ' ' END CLOSE product_cursor DEALLOCATE product_cursor -- Get the next vendor. FETCH NEXT FROM vendor_cursor @vendor_name CLOSE vendor_cursor; DEALLOCATE vendor_cursor;

16 PROGRAMAÇÃO EM BANCO DE DADOS
Código Armazenado Cursor Exemplos Usando cursores aninhados para produzir saída de relatório

17 Excluir todos os itens de um pedido
Crie uma procedure denominada estornar venda, a qual deverá Incialmente retornar todos os itens da venda para o estoque e Depois excluir a venda e seus itens.

18 Material Complementar


Carregar ppt "Banco de Dados CURSOR."

Apresentações semelhantes


Anúncios Google