lunes, 2 de septiembre de 2013

1.1. Creación de Bases de Datos Hotel

Diagrama de Base de Datos Hotel



Código en SqlServer para crear la BD

use master;
go
drop database bdHotel;
go
create database bdHotel;
go
Use bdHotel;
go
create table tNacionalidad
(
 idNacionalidad int identity primary key,
 pais varchar(30),
 nacionalidad varchar(50)
)

create table tCliente
(
 idCliente int identity primary key,
 nombre varchar(170),
 direccion varchar(170),
 documento varchar(12),
 telefono varchar(20),
 fkNacionalidad int,
 foreign key(fkNacionalidad) references tNacionalidad(idNacionalidad) 
)
go
create table tRegistrador
(
 idRegistrador int identity primary key,
 nombre varchar(170),
 direccion varchar(170),
 documento varchar(12),
 telefono varchar(20),
 estado bit,
 observacion text
)
go
create table tTipoHabitacion
(
 idTipo int identity primary key,
 nombre varchar(30),
 descripcion text
)
go
create table tHabitacion
(
 idHabitacion int identity primary key,
 numero int,
 estado char(3),
 costo money,
 descripcion text,
 fkTipo int,
 foreign key(fktipo) references tTipoHabitacion(idTipo)
)
go
create table tEstado
(
 idEstado char(3) primary key,
 nombre varchar(30)
)
go
create table tAlquiler
(
 idAlquiler int identity primary key,
 fechaHoraEntrada datetime,
 fechaHoraSalida datetime,
 costoTotal money,
 observacion text,
 fkHabitacion int,
 fkCliente int,
 fkRegistrador int,
 fkEstado char(3),
 foreign key(fkHabitacion) references tHabitacion(idHabitacion),
 foreign key(fkCliente) references tCliente(idCliente),
 foreign key(fkRegistrador) references tRegistrador(idRegistrador),
 foreign key(fkEstado) references tEstado(idEstado)
)

Creación de los Procedimientos Almacenados


Procedimientos para la tabla tNacionalidad

/*Este procedimiento ingresa registros a la tabla nacionalidad evitando que tanto el país como la nacionalidad no se repitan.*/
--Creando el Procedimiento Almacenado
Create procedure spu_InsertarNacionalidad
@pais varchar(30), @nacionalidad varchar(50)
as
begin
declare @encontrado int;
set @encontrado = (select COUNT(*) from tNacionalidad where pais=@pais or nacionalidad=@nacionalidad);
if (@encontrado=0)
begin
insert into tNacionalidad(pais,nacionalidad) values(@pais,@nacionalidad);
print 'Datos insertados con exito...';
end
else
print 'Ya existen estos datos...';
end
--Ejecutando el procedimiento almacenado
Execute spu_InsertarNacionalidad 'Perú', 'Peruano';

/*Procedimiento Almacenado para modificar la nacionalidad*/
Create procedure spu_modificarNacionalidad
@id int, @pais varchar(30), @nacionalidad varchar(50)
As
Begin
declare @cantidad int
set @cantidad= (select COUNT(*) from tNacionalidad where pais=@pais AND nacionalidad=@nacionalidad);
if (@cantidad=0)
Update tNacionalidad Set pais = @pais, nacionalidad=@nacionalidad Where idNacionalidad=@id;
else
print 'La nacionalidad o el pais se repiten';
End
--Ejecutando el procedimiento almacenado
Exec spu_modificarNacionalidad 2, 'Rusia', 'Ruso';


3 comentarios:

  1. hola quisiera saber como se puede crear el siguiente procedimiento
    Construir un procedimiento almacenado que realice o inserte el alquiler de una habitación.

    ResponderEliminar