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

Actividad No.

Disparadores 2

Mara de los ngeles Mrquez Snchez


Periodo: Agosto - Diciembre 2013

Nombre completo del Estudiante: Rubn Fabin Ponce Segura


Grupo: 4-A
Turno: Matutino
Correo electrnico : maximohumano@gmail.com
Fecha de entrega : 01-oct-2013
Desarrollo de la Actividad.

-- Se crea y usa la base de datos


create database PRESTAMO
use PRESTAMO

-- Se crea la estructura de la base de datos


create table LIBRO
(
NumLibro int not null,
Titulo varchar (50),
Autor varchar (50),
Existencia int
);

alter table LIBRO


add constraint LIBRO_NumLibro_pk
primary key (NumLibro);

create table USUARIO


(
IdUsuario int not null ,
Nombre varchar (50),
Direccion varchar(60),
Telefono varchar(15)
);

alter table USUARIO


add constraint Usuario_IdUsuario_pk
primary key (IdUsuario);

create table PRESTAMO


(
NumPrestamo int not null,
Fecha date,
IdUsuario int not null,
NumLibro int not null,
Estatus char
);

alter table PRESTAMO


add constraint PRESTAMO_NumPrestamo_pk
primary key (NumPrestamo);

alter table PRESTAMO


add constraint PRESTAMO_NumLibro_fk
foreign key (NumLibro)
references LIBRO(NumLibro);

alter table PRESTAMO


add constraint PRESTAMO_IdUsuario_fk
foreign key (IdUsuario)
references USUARIO(IdUsuario);

insert LIBRO
values(001,'Mitos y realidades del sexo joven', 'Anabel Ochoa' , 5);
insert LIBRO
values(002,'La incognita del hombre', 'Alexis Carrel', 5);
insert LIBRO
values(003,'Aura', 'Carlos Fuentes' , 10);
insert USUARIO
values(001,'Fabian Ponce', 'Ignacio Ramos 808', '44413245');
insert USUARIO
values(002,'Francisco Ochoa', 'Paseo del Olmo 32', '36575229');
insert USUARIO
values(003,'Gloria Aura', 'av Juan Pablo Segundo', '33356376');

-- Se crea procedimiento para trabajar con prestamos.


create procedure alta_prestamo
@numpre int,@fech date,@numus int,@numlib int,@statu char
as
if exists (select * from PRESTAMO where NumPrestamo = @numpre)
begin
update PRESTAMO set Estatus = @statu where NumPrestamo = @numpre
print 'Prestamo actualizado'
end
else
begin
insert PRESTAMO values(@numpre,@fech,@numus,@numlib,@statu)
print 'Prestamo ingresado'
end
go

--Se crea el procedimiento "existencia" que modifica la existencia del libro


create trigger existencia on PRESTAMO
for insert,update
as
declare @estado_prestamo char

select @estado_prestamo = Estatus from inserted


if(@estado_prestamo = 'D')
begin
update LIBRO set Existencia += 1
end
else
begin
update LIBRO set Existencia -= 1
end
go
Conclusiones.
Los disparadores se activan al cumplirse uno de los 3 tipos de eventos: insertar, eliminar o
actualizar. Insertar trabaja con la tabla temporal inserted, eliminar con la tabla temporal
deleted y actualizar con ambas. Por medio de estos comandos podemos manipular los datos
como movindonos en el tiempo y as tener ms control de ellos.

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