SQL Server Codifica il trigger di inserimento successivo in SQL Server

Un trigger è un tipo speciale di stored procedure che viene eseguito quando un'istruzione INSERT, DELETE o UPDATE modifica i dati in una tabella.

SQL Server avvia un Trigger AFTER INSERT ogni volta che si verifica un evento istruzione inserto.

Scarica lo script AFTER INSERIMENTO TRIGGER qui usato con esempi in modo che tu possa eseguire lo script sul tuo computer SQL Server seguendo il problema seguente.

Il nostro obiettivo è che quando un record viene inserito nella tabella dei dipendenti, vogliamo anche che questo record venga inserito nella tabella employee_backup. Il nostro esempio avrà due tabelle: dipendente e employee_backup. Creeremo queste tabelle e le popoleremo con alcuni dati.

/ * Verificare se la tabella dei dipendenti esiste già * / SE OBJECT_ID ('DATORE DI LAVORO') NON È NULL DROP TABLE DIPENDENTE GO / * Crea tabella dei dipendenti se non esiste * / CREATE TABLE DIPENDENTE (EMPID INT PRIMARY KEY, FNAME VARCHAR ( 25), LNAME VARCHAR (25),) GO / * Popolare la tabella dei dipendenti con righe di esempio * / INSERT INTO DIPENDENTI (EMPID, FNAME, LNAME) VALORI (500, 'John', 'Smith'), (501, 'Alex' , 'Admas'), (502, 'Eric', 'James'), (503, 'Shaun', 'Marsh') GO / * Creare e sincronizzare la tabella employee_backup con i record dalla tabella dei dipendenti in modo che entrambe le tabelle abbiano lo stesso record * / IF OBJECT_ID ('EMPLOYEE_BACKUP') NON E 'NULL DROP TABLE EMPLOYEE_BACKUP GO SELECT * IN EMPLOYEE_BACKUP FROM EMPLOYEE GO / * Vedi i record della tabella da entrambe le tabelle. Abbiamo quattro righe in entrambe le tabelle * / SELECT * da EMPLOYEE SELECT * da EMPLOYEE_BACKUP GO 

Ora, dobbiamo mantenere sincronizzate entrambe le tabelle in modo che quando un record viene inserito in EMPLOYEE, esso debba essere automaticamente inserito in EMPLOYEE_BACKUP. In tal caso, abbiamo bisogno di un trigger AFTER INSERT.

Creeremo un Trigger AFTER INSERT sul tavolo dei dipendenti.

/ * Dopo Insert trigger sulla tabella dei dipendenti * / IF OBJECT_ID ('TRG_InsertSyncEmp') NON È NULL DROP TRIGGER TRG_InsertSyncEmp GO CREATE TRIGGER TRG_InsertSyncEmp ON dbo.EMPLOYEE DOPO INSERT COME INIZIARE INSERISCI IN EMPLOYEE_BACKUP SELECT * FROM INSERTED END GO


Il nostro trigger è stato creato con successo. Ora inseriremo un record nella tabella dei dipendenti e avremo lo stesso record nella tabella employee_backup perché abbiamo creato un trigger AFTER INSERT sulla tabella dei dipendenti.

Il INSERITOtable è una tabella speciale che mantiene solo le righe che vengono inserite; pertanto, stiamo utilizzando questa tabella INSERTED per mantenere sincronizzate entrambe le tabelle. Stiamo inserendo le righe dalla tabella INSERTED che viene popolata con istruzioni di inserimento fatte sulla tabella dei dipendenti nella tabella employee_backup.

/ * Inserire un record nella tabella dei dipendenti. Qui verrà eseguito un trigger di inserimento e lo stesso record verrà inserito nella tabella employee_backup * / INSERT INTO EMPLOYEE (EMPID, FNAME, LNAME) VALORI (504, 'Vish', 'Dalvi') 
/ * Vedi entrambe le tabelle sono sincronizzate con lo stesso numero di record * / SELEZIONA * da EMPLOYEE SELECT * di EMPLOYEE_BACKUP GO

Il trigger AFTER INSERT sulla tabella EMPLOYEE, non appena incontra un'istruzione di inserimento, richiama immediatamente un'altra istruzione di inserimento per inserire la stessa riga nella tabella EMPLOYEE_HISTORY.