Gebruik een trigger na het invoegen. Doe mee vanaf de inserted
pseudo-tabel naar Tb
op de primaire sleutel. Werk vervolgens de waarden van desc bij. Iets als:(maar kan niet compileren)
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
Deze trigger vindt plaats nadat het invoegen heeft plaatsgevonden, maar vóór insert
verklaring is voltooid. De nieuwe, foutieve waarden zijn dus al in de doeltabel geplaatst. Deze trigger hoeft niet te worden gewijzigd omdat kolommen worden toegevoegd, verwijderd, enz.
Voorbehoud Integriteitsbeperkingen worden afgedwongen voordat de trigger wordt geactiveerd. U kunt dus geen controlebeperking opleggen om de juiste vorm van DESC af te dwingen. Omdat dat ertoe zou leiden dat de instructie mislukt voordat de trigger de kans krijgt om iets te repareren. (Controleer deze paragraaf alstublieft nog een keer voordat u erop vertrouwt. Het is een tijdje geleden dat ik een trigger heb geschreven.)