Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/05/2012, 14:34
damimg
 
Fecha de Ingreso: abril-2012
Ubicación: Capital Federal
Mensajes: 283
Antigüedad: 12 años
Puntos: 15
Respuesta: Problemas con un trigger

Cita:
Iniciado por coper_8888 Ver Mensaje
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!