Hola al grupo,
tengo una tabla que contiene unos 150 campos aproximadamente, 60 de ellos
son calculados, es decir, los valores de esos campos se obtienen de los
campos de esta misma tabla y también de otras tablas. En principio he creado
cada campo asignandole una función para recoger el valor a través de una
consulta pero al hacer un select a la tabla tardaba mucho en ejecutarla.
Luego he decidido crear varios triggers que actualizan los campos calculados
en función de los valores de cada tabla. Por cada tabla de donde se obtienen
los datos he creado un trigger para actualizar dichos campos calculados,
además también en la tabla principal donde se crearon los campos también
tiene su trigger para que cada vez que se agrega o modifica un registro se
actualizen los campos calculados. ¿como puedo evitar que al ejecutar un
trigger de una de las tablas no se ejecute el trigger de la tabla principal
donde están los campos calculados?
create trigger a on principal after insert, update as
begin
update principal set campocalculado=(select dato from secundaria where
codigo=1) where codigo In (select codigo from inserted)
end
create trigger b on secundaria after insert, update as
begin
update principal set campocalculado=(select dato from secundaria where
codigo=1) where codigo In (select x from inserted)
end
Nota: x es un campo de secundaria que lo relaciona con la tabla principal.
Leer las respuestas