Použijte spoušť po vložení. Připojte se z inserted
pseudo tabulky na Tb
na primárním klíči. Poté aktualizujte hodnoty desc. Něco jako:(ale nemusí se zkompilovat)
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
Tento spouštěč nastane po vložení, ale před insert
výpis dokončí. Takže nové, nesprávné hodnoty jsou již umístěny v cílové tabulce. Tento spouštěč se nebude muset měnit při přidávání, odstraňování atd.
Upozornění Omezení integrity jsou vynucena před spuštěním následného spouštěče. Nemůžete tedy zavést kontrolní omezení k vynucení správné formy DESC. Protože by to způsobilo selhání příkazu dříve, než by měl spouštěč šanci cokoliv opravit. (Překontrolujte si prosím tento odstavec, než se na něj spolehnete. Už je to nějaký čas, co jsem napsal spouštěč.)