I database sono orientati al set e i trigger non sono diversi. Un trigger si attiva quando viene eseguita una determinata operazione e tale operazione potrebbe influire su più righe. Quindi, la domanda "Say I want to know the Primary Key of that row"
è un termine improprio. Potrebbero essere inserite più righe.
SQL Server fornisce due tabelle speciali per i trigger AFTER denominati inserted
e deleted
che rappresentano le righe che sono state inserite o eliminate da un'azione e sono strutturate in modo identico alla tabella interessata. Un trigger di aggiornamento può popolare sia inserted
e deleted
mentre un trigger di inserimento popolerà solo la tabella inserted
.
Dai commenti:
ma il destinatario dell'e-mail verrà deciso in base su un valore in una seconda tabella, in cui l'ID chiave esterna si trova nella prima tabella (che è quello con grilletto
La risposta a questa domanda è utilizzare la tabella inserted
(che di nuovo, è necessario assumere più righe) per scorrere le righe e inviare un messaggio di posta elettronica, tuttavia, si consiglia di non inserire la logica della posta elettronica in un trigger. , Consiglierei di mettere quella logica in una stored procedure e di inviare la tua email da t cappello.
Per riferimento: Create Trigger
@ John: Il prodotto si chiama "SQL Server", non "MSSQL". "MSSQL" può essere facilmente confuso con "MySQL". Inoltre, quando si fa una domanda su SQL Server, suggerisco di usare il tag "sql-server". "sql" è per domande generali sul linguaggio SQL. –
Ok grazie per la nota. Lo farà. – johnshaddad
La tua domanda è semplicemente su come definire un trigger o è come scrivere un trigger che puoi usare per operare sulle righe interessate? Se il più tardi, allora dovresti prendere in considerazione la riformulazione della tua domanda. – Thomas