Un trigger è una procedura memorizzata in un database che viene richiamata automaticamente ogni volta che si verifica un evento speciale nel database. Ad esempio, è possibile richiamare un trigger quando una riga viene inserita in una tabella specificata o quando vengono aggiornate colonne specifiche della tabella. In parole semplici, un trigger è una raccolta di SQL istruzioni con nomi particolari archiviate nella memoria del sistema. Appartiene a una classe specifica di procedure memorizzate che vengono richiamate automaticamente in risposta agli eventi del server di database. A ogni trigger è collegata una tabella.
Poiché un trigger non può essere chiamato direttamente, a differenza di una procedura memorizzata, viene definito procedura speciale. Un trigger viene chiamato automaticamente ogni volta che si verifica un evento di modifica dei dati su una tabella, che rappresenta la principale distinzione tra un trigger e una procedura. D'altro canto, una procedura memorizzata deve essere richiamata direttamente.
file di modifica di Linux
Di seguito sono riportate le principali differenze tra trigger e procedure memorizzate:
- I trigger non possono essere richiamati o eseguiti manualmente.
- Non vi è alcuna possibilità che i trigger ricevano parametri.
- Non è possibile eseguire il commit o il rollback di una transazione all'interno di un trigger.
Sintassi:
crea trigger [nome_trigger]
[prima | Dopo]
inserire
su [nome_tabella]
[per ogni riga]
[corpo_attivatore]
Spiegazione della sintassi
- Crea trigger [trigger_name]: crea o sostituisce un trigger esistente con trigger_name.
- [prima | after]: specifica quando verrà eseguito il trigger.
- insert: specifica l'operazione DML.
- Su [nome_tabella]: specifica il nome della tabella associata al trigger.
- [per ogni riga]: specifica un trigger a livello di riga, ovvero il trigger verrà eseguito per ogni riga interessata.
- [trigger_body]: fornisce l'operazione da eseguire quando viene attivato il trigger
Perché utilizziamo i trigger?
Quando dobbiamo eseguire alcune azioni automaticamente in determinati scenari desiderabili, i trigger saranno utili. Ad esempio, dobbiamo essere consapevoli della frequenza e dei tempi delle modifiche a una tabella che cambia costantemente. In questi casi, potremmo creare un trigger per inserire i dati richiesti in una tabella diversa se la tabella primaria ha subito modifiche.
Diversi tipi di trigger in SQL Server
Esistono due categorie di trigger:
- Attivatore DDL
- Attivatore DML
- Trigger di accesso
Trigger DDL
Gli eventi del comando Data Definition Language (DDL) come Create_table, Create_view, drop_table, Drop_view e Alter_table provocano l'attivazione dei trigger DDL.
server SQL
create trigger safety on database for create_table,alter_table,drop_table as print 'you can not create,drop and alter tab>
Produzione:
Trigger DML
Gli eventi di comando Data uses manipolazione Language (DML) che iniziano con Inserisci, Aggiorna ed Elimina attivano i trigger DML. corrispondente a insert_table, update_view e delete_table.
altri esempi di modelli
server SQL
create trigger deep on emp for insert,update ,delete as print 'you can not insert,update and delete this table i' rollback;>
Produzione:
Trigger di accesso
i trigger di accesso vengono attivati in risposta a un evento LOGON. Quando viene creata una sessione utente con un'istanza di SQL Server al termine del processo di autenticazione della registrazione ma prima di stabilire una sessione utente, si verifica l'evento LOGON. Di conseguenza, i messaggi dell'istruzione PRINT e gli eventuali errori generati dal trigger saranno tutti visibili nel log degli errori di SQL Server. Gli errori di autenticazione impediscono l'utilizzo dei trigger di accesso. Questi trigger possono essere utilizzati per tenere traccia dell'attività di accesso o impostare un limite al numero di sessioni che un determinato accesso può avere per controllare e gestire le sessioni del server.
In che modo SQL Server mostra il trigger?
Il trigger show o list è utile quando abbiamo molti database con molte tabelle. Questa query è molto utile quando i nomi delle tabelle sono gli stessi su più database. Possiamo visualizzare un elenco di tutti i trigger disponibili in SQL Server utilizzando il comando seguente:
Sintassi:
FROM sys.triggers, SELECT nome, is_instead_of_trigger
SE tipo = 'TR';
SQL Server Management Studio semplifica la visualizzazione o l'elenco di tutti i trigger disponibili per una determinata tabella. I seguenti passaggi ci aiuteranno a raggiungere questo obiettivo:
Vai a Banche dati menu, selezionare il database desiderato, quindi espanderlo.
- Seleziona il Tabelle menu ed espanderlo.
- Seleziona una tabella specifica ed espandila.
Avremo varie opzioni qui. Quando scegliamo il Trigger opzione, visualizza tutti i trigger disponibili in questa tabella.
PRIMA e DOPO Trigger
I trigger BEFORE eseguono l'azione trigger prima che venga eseguita l'istruzione di attivazione. I trigger AFTER eseguono l'azione trigger dopo l'esecuzione dell'istruzione di attivazione.
Esempio
Dato il database dei resoconti degli studenti, in cui viene registrata la valutazione dei voti degli studenti. In tale schema, creare un trigger in modo che il totale e la percentuale dei voti specificati vengano inseriti automaticamente ogni volta che viene inserito un record.
prova a int
Qui, un trigger verrà richiamato prima che il record venga inserito in modo da poter utilizzare BEFORE Tag.
Supponiamo che lo schema del database
Domanda
mysql>>desc Studente;>
Trigger SQL per la dichiarazione del problema.
L'istruzione SQL sopra creerà un trigger nel database degli studenti in cui ogni volta che vengono immessi i voti delle materie, prima di inserire questi dati nel database, il trigger calcolerà quei due valori e li inserirà con i valori immessi. cioè.
Produzione
In questo modo è possibile creare ed eseguire trigger nei database.
Vantaggio dei trigger
I vantaggi derivanti dall'utilizzo dei trigger in SQL Server includono quanto segue:
dizionario di ordinamento Python
- Le regole degli oggetti del database sono stabilite da trigger, che causano l'annullamento delle modifiche se non vengono soddisfatte.
- Il trigger esaminerà i dati e, se necessario, apporterà modifiche.
- Possiamo garantire l'integrità dei dati grazie ai trigger.
- I dati vengono convalidati utilizzando i trigger prima di essere inseriti o aggiornati.
- I trigger ci aiutano a mantenere un registro dei record.
- Poiché non è necessario compilarli ogni volta che vengono eseguiti, i trigger migliorano le prestazioni delle query SQL.
- Il codice lato client viene ridotto dai trigger, risparmiando tempo e manodopera.
- La manutenzione del grilletto è semplice.
Svantaggio di trigger
Gli svantaggi derivanti dall'utilizzo dei trigger in SQL Server includono quanto segue:
- Solo i trigger consentono l'uso di convalide estese.
- Vengono utilizzati trigger automatici e l'utente non è a conoscenza di quando vengono eseguiti. Di conseguenza, è difficile risolvere i problemi che si presentano a livello del database.
- Il sovraccarico del server del database può aumentare a causa dei trigger.
- In una singola istruzione CREATE TRIGGER, possiamo specificare la stessa azione trigger per più azioni utente, come INSERT e UPDATE.
- Solo il database corrente è disponibile per la creazione di trigger, ma è comunque possibile fare riferimento a oggetti esterni al database.
Domande frequenti
Q1: Cos'è un trigger SQL?
Risposta:
Un trigger SQL è un oggetto di database associato a una tabella ed esegue automaticamente una serie di istruzioni SQL quando si verifica un evento specifico su quella tabella. I trigger vengono utilizzati per applicare regole aziendali, mantenere l'integrità dei dati e automatizzare determinate azioni all'interno di un database. Possono essere attivati da vari eventi, come l'inserimento, l'aggiornamento o l'eliminazione di dati in una tabella, e consentono di eseguire operazioni aggiuntive in base a tali eventi.
Q2: Come funzionano i trigger SQL?
Risposta:
I trigger SQL vengono definiti utilizzando istruzioni SQL e sono associati a una tabella specifica. Quando l'evento trigger definito (ad esempio, INSERT, UPDATE, DELETE) si verifica su quella tabella, il codice trigger associato viene eseguito automaticamente. Il codice di attivazione può essere costituito da istruzioni SQL in grado di manipolare i dati nella stessa tabella o in altre tabelle, applicare vincoli o eseguire altre azioni. I trigger vengono eseguiti nell'ambito della transazione e possono essere definiti per l'esecuzione prima o dopo l'evento di attivazione.
D3: Quali sono i vantaggi derivanti dall'utilizzo dei trigger SQL?
Risposta:
I vantaggi derivanti dall'utilizzo dei trigger SQL includono:
Integrità dei dati: i trigger consentono di applicare regole e vincoli aziendali complessi a livello di database, garantendo che i dati rimangano coerenti e accurati.
Automazione: i trigger possono automatizzare attività ripetitive o complesse eseguendo azioni predefinite ogni volta che si verifica un evento specifico. Ciò riduce la necessità di interventi manuali e migliora l’efficienza.
Tracce di controllo: i trigger possono essere utilizzati per tenere traccia delle modifiche apportate ai dati, ad esempio registrando le modifiche in una tabella di controllo separata. Ciò aiuta a controllare e mantenere una cronologia delle modifiche ai dati.
Convalida dei dati: i trigger possono eseguire ulteriori controlli di convalida sui dati prima che vengano inseriti, aggiornati o eliminati, garantendo che nel database vengano archiviati solo dati validi e conformi.