Trigger

laicanuru
09 de Diciembre del 2004
Yo y los triggers...

A ver si alguien me puede ayudar con esto.
En mi BD tengo 2 tablas:
Tb_Familia(id_Familia, Nombre,... Eliminado),
Tb_Subfamilia(id_Familia, id_Subfamilia, Nombre,... Eliminado)

Necesito hacer un trigger en Tb_Familias que al modificar una entrada me mire si cambio el valor de Eliminado y si es asi, me modifique todas las entradas en Tb_Subfamilias con el mismo id_Familia poniendoles su campo Eliminado a lo mismo que el de Tb_Familias.

Chas gracias por adelantado

Rodolfo Reyes
09 de Diciembre del 2004
Creo que el trigger sería mas o menos asi:

CREATE TRIGGER TR_02_Tb_Familia ON Tb_Familia FOR update AS

--Declara las variables del mismo tipo que tus campos
DECLARE @U_ELIMINADO char(10),
@u_id_Familia char(10)

--Se busca si la columna Eliminado fue modificado
IF UPDATE(Eliminado)

BEGIN

--Se busca la llave primaria para hacer el update
SELECT @u_id_Familia = del.id_Familia
from inserted del

--Se busca el nuevo valor del campo Eliminado
SELECT @U_ELIMINADO = del.Eliminado
from inserted del

--Se hace el update
update Tb_Subfamilia
set Tb_Subfamilia.Eliminado = @U_ELIMINADO
WHERE Tb_Subfamilia.id_Familia = @u_id_Familia

END



laicanuru
09 de Diciembre del 2004
Buenas

Lo he probado y funciona a la perfeccion.
Muchas gracias, te debo un favor enorme.

Rodolfo Reyes
09 de Diciembre del 2004
La sintaxis del trigger depende mucho del manejador de base de datos que este utilizando(oracle, Access, Sql Server). Es mas no todos los manejadores soportan trigger's.

En pocas palabras si nos dices que manejador de base de datos estas utilizando, te podremos ayudar.