Вы находитесь на странице: 1из 4

DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIN

APLICACIN DE BASE DE DATOS

27 DE JUNIO DE 2007

EJERCICIO Creacin de tablas create table_a (id_a char(3) primary key, dato_a1 varchar(10), valor_a1 int) ; create table b (id_b char(3) primary key, dato_b1 varchar(10), valor_b1 int) INSERTAR Inserta en la tabla a y duplica en tabla b create trigger insert_a on table_a for insert as begin declare @id_B char(3) declare @dato_B varchar(10) declare @valor_B int set @id_B = (select id_a from inserted) set @dato_B = (select dato_a1 from inserted) set @valor_B = (select valor_a1 from inserted) insert into table_b values (@id_B, @dato_B, @valor_B) end Inserta en la tabla b y duplica en la tabla a create trigger insert_b on table_b for insert as begin declare @id_a char(3) declare @dato_a varchar(10) declare @valor_a int set @id_a = (select id_b from inserted) set @dato_a = (select dato_b1 from inserted) set @valor_a = (select valor_b1 from inserted) insert into table_a values (@id_a, @dato_a, @valor_a) end PARA ACTUALIZAR Actualiza en a y trigger actualiza en b create trigger actualizar_a on table_a for update as begin update table_b set id_b= (select id_a from inserted)where id_b=(select id_a from deleted) update table_b set dato_b1= (select dato_a1 from inserted)where id_b=(select id_a from deleted) update table_b set valor_b1= (select valor_a1 from inserted)where id_b=(select id_a from deleted) end

Actualiza en b y trigger actualiza en a create trigger actualizar_b on table_b for update as begin update table_a set id_a= (select id_b from inserted)where id_a=(select id_a from deleted) update table_a set dato_a1= (sel ect dato_b1 from inserted)where id_a=(select id_a from deleted) update table_a set valor_a1= (select valor_b1 from inserted)where id_a=(select id_a from deleted) end PARA BORRAR Borra dato de tabla a y trigger borra en tabla b create trigger borrar_a on table_a for delete as begin delete from table_b where id_b=(select id_a from deleted) end Borra dato de tabla b y trigger borra en tabla a create trigger borrar_b on table_b for delete as begin delete from table_a where id_a=(select id_b from deleted) end

INSERTAR Y ACTUALIZAR create trigger insertar on table_a for insert, update as begin declare @ida char(3) declare @datoa varchar(10) declare @valora int declare @idb char(3) declare @datob varchar(10) declare @valorb int declare @aux int set @ida=(select id_a from inserted) set @datoa=(select dato_a1 from inserted) set @valora=(select valor_a1 from inserted) set @aux=(select count * from table_b where id_b=@ida)

if(@aux <> 1) begin insert into table_b values(@iad,@datoa,@valora) end else begin set@idb=@ida set@valorb=(select valor_b1 from table_b where id_b=@idb) set@datob=(select dato_b1 from table_b where date_b=@datob) end if ((@valora<>@valorb) or (@datoa<>@datob)) begin update table_b set valor_b1=@valora,dato_b1=@datoa where id_b=@id_b commit work end else begin rollback end end

Вам также может понравиться