gaiapuffo ha scritto:
nei trigger si può riferirsi alle vecchie e nuove tuple solo nel caso del update?
Ciao,
partendo dal presupposto che tu stia utilizzando SQL S2005/2008 (non ricordo per il 2000 ma credo che valga lo stesso) direi di si.
CREATE TRIGGER [NomeTrigger]
ON [NomeTabella]
AFTER [*il trigger viene eseguito dopo l'update*] | INSTEAD OF [*il trigger viene "consumato prima" dell'update... fanne buon uso*]
UPDATE
AS
Tue istruzioni sql...
A questo punto tieni presente che oltre a poter usufruire di tutte le tabelle a disposizione, solo all'interno del trigger avrai visibili e fruibili le tabelle:
DELETED : che conterrà le tuple (...termine che usavo dalla scuola... ) prima dell'update
INSERTED: che conterrà i dati modificati.
...ovviamente se in qualche versione di SQL, l'UPDATE non fosse elemento valido per un trigger... c'è il solito workaround:
Se solo la DELETED presenta dei valori, allora si deduce che l'istruzione sia una DELETE
Se solo la INSERTED presenta dei valori, allora si potrebbe trattare di una INSERT...
...se entrambe presentano un valore: molto probabilmente siamo di fronte ad una UPDATE.
Buona giornata.