Cita:
Iniciado por coper_8888
Buenas, estoy intentando crear un trigger update, que cuando actualice un campo se actualice ese mismo campo en las demás tablas que contienen el mismo campo.
Es decir, yo tengo 4 tablas, las cuatro disponen de un campo común denominado dorsal. Necesito crear el disparador que cuando actualice el dorsal en una tabla, se actualice automáticamente en el resto de tablas donde aparece ese dorsal.
El trigger se crearlo y demás, pero tengo problemas a la hora de indicar las instrucciones para que se realice el update en el resto de tablas.
Hasta ahora he sido capaz de actualizar por ejemplo ese campo llamado dorsal en dos tablas, yo tengo una tabla ciclista que contiene un numero de dorsal que identifica al corredor, y otra tabla denominada etapa que me indica el ganador de las distintas etapas, pues al cambiar el dorsal en ciclista, me debería de cambiar también en etapa siempre y cuando ese dorsal que estoy cambiando aparezca en esta tabla. Pero lo que hace la consulta es cambiar todos los dorsales que aparecen en la tabla etapa.
Cualquier ayuda será bien venida, estoy bastante confuso.
Un saludo y gracias!!
Que tal coper_8888, lo que te está faltando es la condicion en el where del trigger para que realmente te cambie el dorsal de los que realmente existen en la tabla etapas... seria algo como esto:
create trigger dorsales on tabla1,tabla2,tabla3,tabla4 after update as
begin
update tabla1
set dorsal = inserted.dorsal
where inserted.dorsal =dorsal
update tabla2
set dorsal = inserted.dorsal
where inserted.dorsal =dorsal
update tabla3
set dorsal = inserted.dorsal
where inserted.dorsal =dorsal
update tabla4
set dorsal = inserted.dorsal
where inserted.dorsal =dorsal
end
Saludos!