Utilice un activador de inserción posterior. Únete desde el inserted
pseudo tabla a Tb
en la clave principal. Luego actualice los valores de desc. Algo como:(Pero puede que no se compile)
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
Este activador ocurre después de que haya ocurrido la inserción, pero antes de insert
declaración completa. Por lo tanto, los valores nuevos e incorrectos ya están colocados en la tabla de destino. Este activador no tendrá que cambiar a medida que se agreguen, eliminen, etc. columnas.
Advertencia Las restricciones de integridad se aplican antes de que se active el desencadenador posterior. Por lo tanto, no puede establecer una restricción de verificación para hacer cumplir la forma adecuada de DESC. Porque eso haría que la declaración fallara antes de que el disparador tuviera la oportunidad de arreglar algo. (Por favor revise este párrafo antes de confiar en él. Ha pasado un tiempo desde que escribí un disparador).