Brug en efterindsættelsesudløser. Deltag fra den inserted
pseudo-tabel til Tb
på den primære nøgle. Opdater derefter værdierne for desc. Noget som:(Men kompilerer muligvis ikke)
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
Denne trigger sker efter indsættelsen er sket, men før insert
erklæring afsluttes. Så de nye, forkerte værdier er allerede placeret i måltabellen. Denne udløser skal ikke ændres, når kolonner tilføjes, slettes osv.
Advarsel Integritetsbegrænsninger håndhæves før efterudløsningsbrandene. Så du kan ikke påføre en kontrolbegrænsning for at håndhæve den korrekte form for DESC. Fordi det ville få erklæringen til at mislykkes, før triggeren har en chance for at rette noget. (Dobbelttjek venligst dette afsnit, før du stoler på det. Det er et stykke tid siden, jeg har skrevet en trigger.)