Condividi tramite


Informazioni sui trigger DML

Microsoft SQL Server 2005 sono disponibili due meccanismi principali per applicare regole business e integrità dei dati, ovvero i vincoli e i trigger. Un trigger è un tipo speciale di stored procedure che diventa effettiva automaticamente quando viene eseguito un evento del linguaggio. In SQL Server sono inclusi due tipi generali di trigger, i trigger DML e i trigger DDL.

I trigger DDL rappresentano una novità di SQL Server 2005 e vengono richiamati quando viene generato un evento DDL (Data Definition Language) nel server o nel database. I trigger DDL vengono descritti in modo più dettagliato in Trigger DDL.

I trigger DML vengono richiamati quando viene generato un evento DML (Data Manipulation Language) nel database. Gli eventi DML includono le istruzioni INSERT, UPDATE e DELETE, che consentono di modificare i dati in una tabella o una vista specifica. Un trigger DML può eseguire query su altre tabelle e includere istruzioni Transact-SQL complesse. Il trigger e l'istruzione che lo attiva vengono considerati come una singola transazione, di cui è possibile eseguire il rollback dal trigger stesso. Se viene rilevato un errore grave, ad esempio un'insufficienza di spazio su disco, viene eseguito automaticamente il rollback dell'intera transazione.

I trigger DML sono utili per i motivi seguenti:

  • Consentono di propagare le modifiche nelle tabelle correlate del database. È tuttavia possibile eseguire le modifiche in modo più efficiente utilizzando vincoli di integrità referenziale di propagazione.
  • Assicurano la protezione contro operazioni INSERT, UPDATE e DELETE dannose o non corrette e applicano altre restrizioni più complesse rispetto a quelle definite con i vincoli CHECK.
    A differenza dei vincoli CHECK, i trigger DML possono fare riferimento alle colonne di altre tabelle. Un trigger, ad esempio, può utilizzare un'istruzione SELECT di un'altra tabella per eseguire il confronto con i dati inseriti o aggiornati e per eseguire ulteriori operazioni, ad esempio la modifica di dati o la visualizzazione di un messaggio di errore definito dall'utente.
  • Consentono di valutare lo stato di una tabella prima e dopo la modifica dei dati e di eseguire le operazioni appropriate sulla base delle differenze.
  • Più trigger DML dello stesso tipo (INSERT, UPDATE o DELETE) in una tabella consentono di eseguire più operazioni diverse in risposta alla stessa istruzione di modifica.

Vedere anche

Concetti

Tipi di trigger DML
Trigger a confronto con i vincoli
Trigger DML nel database di esempio AdventureWorks

Guida in linea e informazioni

Assistenza su SQL Server 2005