Utilizzare un trigger dopo l'inserimento. Partecipa dal inserted
pseudo tabella a Tb
sulla chiave primaria. Quindi aggiorna i valori di desc. Qualcosa del tipo:(ma potrebbe non essere compilato)
CREATE TRIGGER TbFixTb_Trg
ON Tb
AFTER INSERT
AS
BEGIN
UPDATE Tb
SET DESC = SomeTransformationOf(i.DESC)
FROM Tb
INNER JOIN inserted i on i.Id = Tb.Id
END
GO
Questo trigger si verifica dopo l'inserimento, ma prima di insert
la dichiarazione si completa. Quindi i nuovi valori errati sono già inseriti nella tabella di destinazione. Questo attivatore non dovrà essere modificato poiché le colonne vengono aggiunte, eliminate e così via
Avvertimento I vincoli di integrità vengono applicati prima dell'attivazione del trigger successivo. Quindi non puoi inserire un vincolo di controllo per imporre la forma corretta di DESC. Perché ciò causerebbe il fallimento dell'istruzione prima che il trigger abbia la possibilità di correggere qualsiasi cosa. (Ricontrolla questo paragrafo prima di fare affidamento su di esso. È passato un po' di tempo dall'ultima volta che ho scritto un trigger.)