Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Triggers (Gatilhos) Equipe: Caroline Amanda Souza Gomes & Maria Gabriele Almeida Oliveira Professor: Gabriel Lopes 1 Sumário Definição Gatilhos Partes do Gatilho Uso de Gatilhos (Aplicabilidades) Uso de Gatilhos (Restrições) Estrutura do Gatilho Comandos permitidos e não permitidos no Gatilho Tabelas temporárias (Funcionamento) Alteração Gatilho Desabilitar, Habilitar e Remover Gatilho 2 O que são gatilhos? Gatilhos ou Triggers são blocos SQL acionados ou disparados automaticamente, antes ou depois da ocorrência de um evento, que pode ser uma operação insert, update ou delete. 3 Triggers (Gatilhos) Uma descrição de gatilho contem três partes: Evento: os eventos acionam o gatilho, normalmente são operações de atualizações do SGBD; Condição: uma consulta ou teste que é executada quando o gatilho é ativado; Ação: uma sequencia de comandos SQL, que é executada quando o gatilho é ativado e sua condição é verdadeira. 4 Uso de Gatilhos Aplicabilidades: Impor uma integridade de dados mais complexa; Definir mensagens de erro personalizadas; Comparar a consistência dos dados antes e depois de uma instrução UPDATE. Arquivamento de registros excluídos (Temporariamente) 5 Uso de gatilhos Restrições: Não se pode criar dois gatilhos diferentes, com as mesmas características para uma mesma tabela; Chaves primárias, únicas ou estrangeiras não podem ser alteradas por gatilhos; Os gatilhos não podem ser chamados diretamente, como os outros procedimentos. 6 Estrutura do gatilho (sintaxe) CREATE TRIGGER <nome_trigger> ON <tabela/visão> [FOR BEFORE/AFTER] [INSERT], [UPDATE], [DELETE] AS <SENTENÇA> END; nome_trigger: nome que identificará o gatilho no SGBD. tabela/visão: tabela ou view à qual o gatilho está ligado para ser disparado. FOR BEFORE/AFTER: define o momento em que o gatilho é disparado. INSERT/UPDATE/DELETE: indica qual ação disparará o gatilho. sentença: ação a ser executada quando um determinado disparo ocorrer. 7 Exemplo: Criar um Gatilho que mostre uma mensagem a cada nova inserção de produto. 8 Triggers (Gatilhos) Nos comandos que definem o Gatilho, pode-se usar a maioria dos comandos SQL, inclusive estruturas IF, ELSE, WHILE, WHEN... Não são permitidos os seguintes comandos: - ALTER DATABASE - CREATE DATABASE - DROP DATABASE 9 Triggers (Gatilhos) As operações que disparam o gatilho (INSERT, UPDATE E DELETE) tem acesso a duas tabelas especiais, denominadas tabelas temporárias: - INSERTED: armazena cópias dos novos registros afetados por um comando INSERT ou UPDATE. - DELETED: armazena cópias dos registros afetados por um comando DELETE ou UPDATE antes da alteração. Essas tabelas existem apenas na memória do servidor, não sendo gravadas em disco. Estão acessíveis durante a execução do gatilho. 10 Nota: em operações de upate, o que ocorre na prática é uma exclusão do registro antigo seguida da inserção de um novo registro com os dados atualizados. Então, em triggers para a operação de update podemos utilizar tanto a tabela DELETED quanto a INSERTED. 10 Exemplo: Criar um Gatilho quando um novo aluno é cadastrado. 11 Exemplo: Criar um Gatilho que atualiza o valor final do caixa quando uma venda for inserida. 12 Exemplo: Criar um Gatilho que irá remover o valor da venda no caixa quando uma venda for excluída. 13 Alterar um gatilho ALTER TRIGGER <nome_trigger> ON <tabela> FOR [INSERT], [UPDATE], [DELETE], AS <sentença> END; nome_trigger: nome do gatilho. tabela: tabela para qual o trigger está sendo criado. FOR: deve ser seguido do tipo de comando ou comandos (insert, update e delete) que disparam o trigger. sentença: ação a ser executada quando um determinado disparo ocorrer. 14 Desabilitar, Habilitar e Remover um gatilho DISABLE TRIGGER <nome_trigger> ON <tabela/view> -- Desabilita o Gatilho ENABLE TRIGGER <nome_trigger> ON <tabela/view> -- Habilita o Gatilho DROP TRIGGER <nome_trigger> -- Remove o Gatilho 15 Bibliografia PUGA SANDRA Banco de dados: Implementação em SQL, PL/SQL e Oracle 11g – Sandra Puga, Edson França e Milton Goya – São Paulo Pearson Education do Brasil, 2013 SILBERSCHATZ, A.; KORTH, H.; SUDARSHAN, S. Sistema de Banco de Dados. 5. ed. São Paulo: Editora Campus, 2006. RAMAKRISHNAN, Raghu Database Management Systems / Raghu Ramakrishnan, Johannes Gehrke. 3rd ed, 2003 GILLENSON, M. L.; PONNIAH, P.; KRIEGEL, A.; TRUKHNOV, B.M.; TAYLOR, A.G.; POWELL, G. Introdução à Gerência de Banco de Dados. Rio de Janeiro: LTC, 2009. Outras fontes: Triggers no SQL Server, teoria e prática aplicada em uma situação real – DevMedia.com.br (http://www.devmedia.com.br/triggers-no-sql-server-teoria-e-pratica-aplicada-em-uma-situacao-real/28194) Triggers no SQL Server, introdução a Triggers – DevMedia.com.br (http://www.devmedia.com.br/introducao-a-triggers/1695) 16
Compartilhar