Modificar registro completo a otras tablas
En la pregunta anterior respondiste excelente sobre unos trigger de agregar, borrar y actualizar varias tablas mediante una sola. Pero tengo una pregunta: cómo puedo actualizar todo un registro mediante la tabla madre en una sola instrucción. Me explico, me pasaste el siguiente código:
--- *****************************************************
--- *****************************************************
--- Ejemplo trigger activado por UPDATE en T1
--- *****************************************************
--- *****************************************************
CREATE TRIGGER TR_Actualizar_T1
ON <Nombre Base de datos>.T1
AFTER UPDATE
AS
BEGIN
--- Supongamos que quiero guardar en el campo C2 de las tablas T2 a T9
--- el nuevo valor de C2 en la tabla T1
UPDATE T2 set T2.C2=INSERTED.C2 FROM INSERTED where T2.id=INSERTED.id
UPDATE T3 set T2.C2=INSERTED.C2 FROM INSERTED where T3.id=INSERTED.id
UPDATE T4 set T2.C2=INSERTED.C2 FROM INSERTED where T4.id=INSERTED.id
UPDATE T5 set T2.C2=INSERTED.C2 FROM INSERTED where T5.id=INSERTED.id
UPDATE T6 set T2.C2=INSERTED.C2 FROM INSERTED where T6.id=INSERTED.id
UPDATE T7 set T2.C2=INSERTED.C2 FROM INSERTED where T7.id=INSERTED.id
UPDATE T8 set T2.C2=INSERTED.C2 FROM INSERTED where T8.id=INSERTED.id
UPDATE T9 set T2.C2=INSERTED.C2 FROM INSERTED where T9.id=INSERTED.id
END
y todo está bien. Sin embargo, no quiero actualizar un campo de la tabla T2, ahora quiero actualizar todos los campos de T2 con todos los campos de T1, cómo lo hago? Con qué instruccion, no me funciona ninguna. Solicito tu ayuda.
--- *****************************************************
--- *****************************************************
--- Ejemplo trigger activado por UPDATE en T1
--- *****************************************************
--- *****************************************************
CREATE TRIGGER TR_Actualizar_T1
ON <Nombre Base de datos>.T1
AFTER UPDATE
AS
BEGIN
--- Supongamos que quiero guardar en el campo C2 de las tablas T2 a T9
--- el nuevo valor de C2 en la tabla T1
UPDATE T2 set T2.C2=INSERTED.C2 FROM INSERTED where T2.id=INSERTED.id
UPDATE T3 set T2.C2=INSERTED.C2 FROM INSERTED where T3.id=INSERTED.id
UPDATE T4 set T2.C2=INSERTED.C2 FROM INSERTED where T4.id=INSERTED.id
UPDATE T5 set T2.C2=INSERTED.C2 FROM INSERTED where T5.id=INSERTED.id
UPDATE T6 set T2.C2=INSERTED.C2 FROM INSERTED where T6.id=INSERTED.id
UPDATE T7 set T2.C2=INSERTED.C2 FROM INSERTED where T7.id=INSERTED.id
UPDATE T8 set T2.C2=INSERTED.C2 FROM INSERTED where T8.id=INSERTED.id
UPDATE T9 set T2.C2=INSERTED.C2 FROM INSERTED where T9.id=INSERTED.id
END
y todo está bien. Sin embargo, no quiero actualizar un campo de la tabla T2, ahora quiero actualizar todos los campos de T2 con todos los campos de T1, cómo lo hago? Con qué instruccion, no me funciona ninguna. Solicito tu ayuda.
1 Respuesta
Respuesta de hernan59_arg
1