Está en la página 1de 2

SQL Server 2005

Creacion de Tablas
create table empleado(
ci numeric(7),
nombre nvarchar(40),
salario numeric(8,2),
descuento numeric(8,2),
liquidop numeric(8,2));
create table seguimiento(
ci numeric(7),
usuario nvarchar(40),
fecha nvarchar(20),
operacion nvarchar(20));
create trigger t11 on empleado
after insert,update
as
declare @aux numeric(8,2),
@salario numeric(8,2),
@descuento numeric(8,2),
@ci numeric(7)
select @salario=salario,@descuento=descuento,@ci=ci
from inserted
set @aux=@salario-@descuento
update empleado set liquidop=@aux
where ci=@ci
insert seguimiento values
(@ci,suser_sname(),getdate(),'INSERTADO')
go
insert into empleado(ci,nombre,salario,descuento)
values(400,'NICOLAS CALIZAYA',5000,1000)
Trigger para Eliminar una fila
create trigger t33 on empleado
AFTER DELETE
as
declare
@ci numeric(7)
select @ci=ci
from DELETED
insert seguimiento values
(@ci,suser_sname(),getdate(),'BORRADO')
Go
DELETE FROM EMPLEADO WHERE CI=400
GO
Trigger para Insertar una fila
create trigger t44 on empleado
AFTER INSERT
as
declare
@ci numeric(7)
select @ci=ci
from INSERTED
insert seguimiento values
(@ci,suser_sname(),getdate(),'insertado')
Go
insert into empleado(ci,nombre,salario,descuento)
values(400,'NICOLAS CALIZAYA',5000,1000)
Trigger para Actuaizar una fila
create trigger t55 on empleado
after update

as
declare @aux numeric(8,2),
@salario numeric(8,2),
@descuento numeric(8,2),
@ci numeric(7)
select @salario=salario,@descuento=descuento,@ci=ci
from inserted
set @aux=@salario-@descuento
update empleado set liquidop=@aux
where ci=@ci
insert seguimiento values
(@ci,suser_sname(),getdate(),'ACTUALIZADO')
go
update empleado
set liquidop
where ci=777
go
Trigger en ORACLE
CREATE TABLE empleado1(
ci number(7),
nombre varchar(30),
fecha_nac date,
salario number(8,2));

CREATE TABLE seguimiento1(


usuario varchar(30),
operacion varchar(30),
fecha date,
ci number(7),
salario number(8,2));

create or replace trigger t1


before insert or update or delete on empleado1
for each row
begin
if inserting then
insert into seguimiento1 values
(user,'INSERTADO',sysdate,:new.ci,:new.salario);
else
if updating then
insert into seguimiento1 values
(user,'ACTUALIZADO',sysdate,:old.ci,:old.salario);
else
insert into seguimiento1 values
(user,'BORRADO',sysdate,:old.ci,:old.salario);
end if;
end if;
end;

insert into empleado1(ci,nombre,fecha_nac)


values(10,'NICOLAS CALIZAYA','12/11/90');
update empleado1 set salario=100 where ci=10;
delete from empleado1 where ci=10;

Trigger2 en ORACLE
CREATE TABLE emp(
ci number(7) primary key,
nombre varchar(30),

totalg number(8,2),
totald number(8,2),
liquidop number(8,2));

CREATE TABLE segui(


ci number(7) primary key,
usuario varchar(30),
fecha date,
operacio varchar(20));
create or replace trigger dis1
before insert or update on emp
for each row
begin
:new.liquidop:=:new.totalg-:new.totald;
end;
insert into emp(ci,nombre,totalg,totald)
values(10,'NICOLAS',5000,400);
update emp set totald=1000 where ci=10;
create or replace trigger dis6
before insert or update or delete on emp
for each row
begin
if inserting then
insert into segui values
(:new.ci,user,sysdate,'INSERTADO');
else
if updating then
insert into segui values
(:old.ci,user,sysdate,'ACTUALIZADO');
else
insert into segui values
(:old.ci,user,sysdate,'BORRADO');
end if;
end if;
end;
insert into emp(ci,nombre,totalg,totald)
values(4003659,'NICOLAS',5000,400);
select * from segui;
update emp set totald=1000 where ci=10;
delete from empleado Where ci=10;

También podría gustarte