Trigger
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
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
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
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
Buenas
Lo he probado y funciona a la perfeccion.
Muchas gracias, te debo un favor enorme.
Lo he probado y funciona a la perfeccion.
Muchas gracias, te debo un favor enorme.
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.
En pocas palabras si nos dices que manejador de base de datos estas utilizando, te podremos ayudar.
