Introduzione

Creare e ottimizzare i trigger in SQL Server

Florin Angelescu

Instructor

Cos'è un trigger?

  • Tipo speciale di stored procedure
  • Eseguito quando si verifica un evento nel server database

Come funziona un trigger

Creare e ottimizzare i trigger in SQL Server

Tipi di trigger (in base ai comandi T-SQL)

  • Trigger DML (Data Manipulation Language)
    • Istruzioni INSERT, UPDATE o DELETE
  • Trigger DDL (Data Definition Language)
    • Istruzioni CREATE, ALTER o DROP
  • Trigger di accesso (Logon)
    • Eventi LOGON
Creare e ottimizzare i trigger in SQL Server

Tipi di trigger (in base al comportamento)

  • Trigger AFTER

    • L'istruzione originale viene eseguita
    • Si attivano istruzioni aggiuntive
  • Esempi d'uso

    • Ricostruire un indice dopo un grande inserimento
    • Avvisare l'admin quando i dati vengono aggiornati
Creare e ottimizzare i trigger in SQL Server

Tipi di trigger (in base al comportamento)

  • Trigger INSTEAD OF

    • L'istruzione originale non viene eseguita
    • Si esegue invece un'istruzione sostitutiva
  • Esempi d'uso

    • Impedire inserimenti
    • Impedire aggiornamenti
    • Impedire eliminazioni
    • Impedire modifiche agli oggetti
    • Avvisare l'admin
Creare e ottimizzare i trigger in SQL Server

Definizione di trigger (con AFTER)

-- Crea il trigger con un nome descrittivo
CREATE TRIGGER ProductsTrigger

-- Il trigger va associato a una tabella ON Products
-- Tipo di comportamento del trigger AFTER INSERT
-- Inizio del flusso del trigger AS
-- Azione eseguita dal trigger PRINT ('È stato fatto un insert nella tabella Products.');
Creare e ottimizzare i trigger in SQL Server

Definizione di trigger (con INSTEAD OF)

-- Crea il trigger con un nome descrittivo
CREATE TRIGGER PreventDeleteFromOrders
-- Il trigger va associato a una tabella
ON Orders
-- Tipo di comportamento del trigger
INSTEAD OF DELETE
-- Inizio del flusso del trigger
AS
-- Azione eseguita dal trigger
PRINT ('Non puoi eliminare righe dalla tabella Orders.');
Creare e ottimizzare i trigger in SQL Server

AFTER vs. INSTEAD OF

CREATE TRIGGER MyFirstAfterTrigger
ON Table1
-- Attivato dopo 
-- l'evento scatenante (UPDATE)
AFTER UPDATE
AS
{trigger_actions_section};
CREATE TRIGGER MyFirstInsteadOfTrigger
ON Table2
-- Attivato invece di 
-- l'evento scatenante (UPDATE)
INSTEAD OF UPDATE
AS
{trigger_actions_section};
Creare e ottimizzare i trigger in SQL Server

Ayo berlatih!

Creare e ottimizzare i trigger in SQL Server

Preparing Video For Download...