Condividi tramite


Utilizzo di trigger

Aggiornamento: novembre 2007

Un trigger è un particolare tipo di stored procedure che viene eseguita quando si modificano i dati in una tabella, utilizzando una o più operazioni di modifica dei dati: UPDATE, INSERT o DELETE. Trigger speciali noti come trigger INSTEAD OF specificano le modifiche alle tabelle base di una vista.

I trigger possono eseguire una query su altre tabelle e possono includere istruzioni SQL complesse. Si rivelano utili principalmente per applicare regole o requisiti di business complessi. È possibile, ad esempio, stabilire se consentire l'inserimento di un nuovo ordine in base allo stato corrente di solvibilità del cliente.

I trigger sono inoltre utili per imporre l'integrità referenziale, che mantiene immutata la validità delle relazioni definite tra le tabelle quando si aggiungono, aggiornano o eliminano righe in tali tabelle. Tuttavia il modo migliore di imporre l'integrità referenziale è definire vincoli tra le chiavi primarie e le chiavi esterne nelle tabelle correlate. Se si utilizza Progettazione tabelle, è possibile creare una relazione tra tabelle per stabilire automaticamente un vincolo di chiave esterna. Per informazioni dettagliate, vedere Relazioni tra tabelle (Visual Database Tools).

I trigger offrono i seguenti vantaggi:

  • I trigger sono automatici. Vengono attivati immediatamente dopo ogni modifica apportata ai dati della tabella, ad esempio a seguito di immissione manuale o di un'operazione di un'applicazione.

  • I trigger possono propagare le modifiche alle tabelle correlate nel database. È possibile ad esempio scrivere un trigger di eliminazione nella colonna title_id della tabella titles per provocare l'eliminazione delle righe corrispondenti in altre tabelle. Il trigger utilizza la colonna title_id come chiave univoca per individuare le colonne corrispondenti nelle tabelle titleauthor, sales e roysched.

  • I trigger possono applicare restrizioni più complesse rispetto a quelle definite tramite i Vincoli CHECK (Visual Database Tools). A differenza dei vincoli CHECK, i trigger possono fare riferimento a colonne in altre tabelle. Un trigger può, ad esempio, annullare gli aggiornamenti che tentano di applicare uno sconto (archiviato nella tabella discounts) ai libri (archiviati nella tabella titles) con un prezzo inferiore a 10 euro.

Per ulteriori informazioni ed esempi di trigger, vedere la documentazione relativa al server di database in uso. Se si utilizza Microsoft SQL Server, vedere l'argomento relativo alla creazione di trigger nella documentazione in linea di SQL Server.

In questa sezione

Procedura: creare un trigger

Procedura: salvare un trigger

Procedura: aprire un trigger

Procedura: eliminare un trigger

Procedura: modificare i trigger

Utilizzo di trigger INSTEAD OF per le viste

Procedura: visualizzare le proprietà di un trigger

Riferimenti

Riferimenti (Visual Database Tools)