Triggers AFTER (DML)

Criando e Otimizando Triggers no SQL Server

Florin Angelescu

Instructor

Definição e propriedades

  • Executa um conjunto de ações quando é disparado
  • As ações ocorrem só após o término do evento DML
  • Usado com INSERT, UPDATE e DELETE em tabelas ou views
Criando e Otimizando Triggers no SQL Server

Pré-requisitos de trigger AFTER

  • Tabela ou view necessária para instruções DML
  • O trigger será ligado à mesma tabela

Saída da tabela Products usada neste exemplo:

| Product | Price | Currency | Quantity | Measure |
|---------|-------|----------|----------|---------|
| Apple   | 2.00  | USD      | 25000    | kg      |
| Apricot | 1.55  | USD      | 2500     | kg      |
| Avocado | 3.00  | USD      | 1000     | kg      |
| Banana  | 1.80  | USD      | 35000    | kg      |
Criando e Otimizando Triggers no SQL Server

Pré-requisitos de trigger AFTER

  • Tabela de destino
  • Descrição do trigger
  • Evento de disparo (DML)
  • Nome do trigger
  • Products
  • Salvar infos de produtos excluídos em uma tabela de histórico
  • DELETE
  • TrackRetiredProducts
Criando e Otimizando Triggers no SQL Server

Resumo dos pré-requisitos do trigger AFTER

Quando linhas são removidas da tabela Products...

Salve as informações necessárias dessas linhas na tabela RetiredProducts.

| Product | Price | Currency | Quantity | Measure |
|---------|-------|----------|----------|---------|
| Apple   | 2.00  | USD      | 25000    | kg      |
| Apricot | 1.55  | USD      | 2500     | kg      | X
| Avocado | 3.00  | USD      | 1000     | kg      |
| Banana  | 1.80  | USD      | 35000    | kg      |
| Product | Measure | RemovalDate |
|---------|---------|-------------|
| Apricot | kg      | 19.04.2019  |
Criando e Otimizando Triggers no SQL Server

Definição de trigger AFTER

CREATE TRIGGER TrackRetiredProducts

ON Products
AFTER DELETE
AS INSERT INTO RetiredProducts (Product, Measure) SELECT Product, Measure FROM deleted;
Criando e Otimizando Triggers no SQL Server

Tabelas "inserted" e "deleted"

  • Tabelas especiais usadas por triggers DML
  • Criadas automaticamente pelo SQL Server
Criando e Otimizando Triggers no SQL Server

Tabelas "inserted" e "deleted"

  • Tabelas especiais usadas por triggers DML
  • Criadas automaticamente pelo SQL Server
Tabela especial INSERT UPDATE DELETE
inserted novas linhas novas linhas N/A
deleted N/A linhas atualizadas linhas removidas
Criando e Otimizando Triggers no SQL Server

Trigger AFTER completo

CREATE TRIGGER TrackRetiredProducts
ON Products
AFTER DELETE
AS
    INSERT INTO RetiredProducts (Product, Measure)
    SELECT Product, Measure
    FROM deleted;
Criando e Otimizando Triggers no SQL Server

Vamos praticar!

Criando e Otimizando Triggers no SQL Server

Preparing Video For Download...