Raccomandato, 2024

Scelta Del Redattore

Differenza tra trigger e procedura

Trigger e Procedure sono componenti di SQL avanzato. Trigger e Procedure eseguono entrambi un'attività specificata sulla loro esecuzione. La differenza fondamentale tra Trigger e Procedure è che il Trigger viene eseguito automaticamente su occorrenze di un evento mentre, la Procedura viene eseguita quando è esplicitamente invocata.

Cerchiamo di discutere alcune più differenze tra trigger e procedura con l'aiuto di un grafico di confronto mostrato di seguito.

Grafico comparativo

Base per il confrontotriggerprocedure
Di baseVengono eseguiti automaticamente al verificarsi dell'evento specificato.Possono essere eseguiti ogni volta che richiesto.
chiamataI trigger non possono essere chiamati all'interno di una procedura.Ma puoi chiamare una procedura all'interno di un trigger.
ParametroNon possiamo passare parametri ai trigger.Possiamo passare i parametri alle procedure.
RitornoTrigger non restituisce mai valore all'esecuzione.La procedura può restituire valore / i all'esecuzione.

Definizione di Trigger

Il trigger è come una procedura che viene eseguita automaticamente al verificarsi di un evento specificato. Come la procedura, il trigger non ha bisogno di essere chiamato esplicitamente. I trigger vengono creati per eseguire alcune attività in risposta all'occorrenza di un evento specificato.

Il trigger può essere richiamato in risposta alle istruzioni DDL (DELETE, INSERT o UPDATE) o alle istruzioni DML (DELETE, INSERT o UPDATE) o, in alcune operazioni del database (SERVERERROR, LOGON, LOGOFF, STARTUP o SHUTDOWN).

Il trigger è costituito da tre componenti come discusso di seguito:

  • Evento : l'evento è il verificarsi di un incidente che causerà l'esecuzione del trigger. Il trigger può essere ordinato di eseguire PRIMA di un evento o può essere ordinato di essere eseguito DOPO l'esecuzione di un evento.
  • Condizione : è una parte facoltativa del trigger. Se non citato, il trigger verrà eseguito mentre si verifica l'evento specificato. Se la condizione è specificata, controllerà le regole per determinare se il trigger debba essere eseguito.
  • Azione : Azione è un insieme di istruzioni SQL che verranno eseguite sull'esecuzione di Trigger.

La forma generale di creazione di un evento è discussa di seguito:

 CREARE TRIGGER PRIMA / AFTER CONDITION AZIONE; 

Qui, la condizione è facoltativa.

Definizione di procedure

La procedura può essere presa come unità di programma, creata per eseguire alcune attività e memorizzata nel database. Vengono richiamati dall'istruzione SQL ogni volta che è necessario. Le procedure sono come funzioni definite dall'utente definite dagli sviluppatori. Le procedure possono essere invocate utilizzando CALL o EXECUTE .

Le procedure sono utili nelle seguenti situazioni:

  • Se la procedura è richiesta da diverse altre applicazioni, può essere memorizzata sul server in modo che possano essere richiamate da qualsiasi applicazione. Ridurrà lo sforzo di duplicazione della procedura da un database all'altro e migliorerà anche la modularità del software.
  • Poiché la procedura è in esecuzione sul server, ridurrà il trasferimento dei dati e ridurrà anche i costi di comunicazione.
  • Le procedure possono essere utilizzate per verificare i complessi vincoli che vanno oltre il potere del trigger.

Cerchiamo di discutere la forma generale di creare una procedura:

 CREATE PROCEDURE () RESTITUISCE; 

Qui, i parametri e le dichiarazioni locali sono opzionali. Sono menzionati solo quando sono richiesti. La seguente dichiarazione descrive la chiamata delle procedure.

 CHIAMATA (); 

Differenze chiave tra trigger e procedura

  1. La differenza principale tra trigger e procedura è che un trigger è un'istruzione che viene richiamata automaticamente quando si verifica un evento. D'altra parte, la procedura viene invocata ogni volta che è richiesta.
  2. Si può definire la procedura all'interno di un trigger. Tuttavia, un trigger non viene mai definito all'interno di una procedura poiché il trigger deve essere richiamato automaticamente al verificarsi di qualsiasi evento.
  3. Possiamo passare i parametri alle procedure, ma non possiamo passare i parametri per attivare come non è stato invocato da noi.
  4. Una procedura può restituire valori di parametro o codice, ma un trigger non può.

Conclusione:

I trigger sono utili, ma vengono evitati se esiste un'alternativa a loro, poiché aumenta la complessità dei dati. A volte i trigger sono anche sostituti con una procedura appropriata.

Top