Buscar

GatilhoosSlide

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

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando

Outros materiais