Procedimientos Almacenados – Ejercicio

Procedimientos Almacenados

Ejercicio para el uso de los procedimientos almacenados con los datos de una tabla.

En este ejercicio se crea una tabla para carreras en la Universidad SQL, se crean los procedimientos almacenados para insertar un registro, modificar los datos del registro, listar los registros ordenados por descripción y borrar un registro.

El borrado del registro es lógico. (Ver Eliminación de registros)



Desarrollo del ejemplo

Create database UniSQL
go
use UniSQL
go

Create table Carreras
(
CarrerasCodigo nchar(5),
CarrerasDescripcion nvarchar(100),
CarrerasAcreditada nchar(1),
CarrerasVacantes Numeric(9,2),
CarrerasEstado nchar(1),
constraint CarrerasPK Primary key (CarrerasCodigo)
)
go

—  Insertar registros

insert into Carreras values
(‘95642′,’Ing. de SISTEMAS’,’S’,250,’A’),
(‘28596′,’ADMINISTRACION’,’S’,290,’A’),
(‘05252′,’Ing. INDUSTRIAL’,’S’,450,’A’),
(‘78596′,’MEDICINA’,’N’,100,’A’)
go

— Procedimientos para Insertar, Editar y Eliminar
— Insertar

Create procedure spCarrerasInsertarNuevo
(
@CarrerasCodigo nchar(5),
@CarrerasDescripcion nvarchar(100),
@CarrerasAcreditada nchar(1),
@CarrerasVacantes Numeric(9,2),
@CarrerasEstado nchar(1)
)
As
insert into Carreras
(CarrerasCodigo, CarrerasDescripcion, CarrerasAcreditada,
CarrerasVacantes, CarrerasEstado)
values
(@CarrerasCodigo, @CarrerasDescripcion, @CarrerasAcreditada,
@CarrerasVacantes, @CarrerasEstado)
go

 Prueba del SP para insertar
Exec spCarrerasInsertarNuevo ‘65285’,’PSICOLOGIA’,’S’,130,’A’
go

También se puede ejecutar de la siguiente manera:

Exec spCarrerasInsertarNuevo
@CarrerasVacantes =80 ,@CarrerasEstado =’A’,@CarrerasCodigo =’96325′,
@CarrerasDescripcion=’CONTABILIDAD’,@CarrerasAcreditada=’S’
go

Listado de Carreras
SELECT * FROM Carreras
go
 Crear un Índice por Descripción de la carrera (Ver Índices)
create index CarrerasDescripcionIDXa on Carreras(CarrerasDescripcion)
with (fillfactor = 80)
go

Procedimientos para Listado, note que no aparecen los que tienen en el estado la letra E que indica que han sido eliminadas.

Create procedure spCarrerasListado
As
select CarrerasCodigo, CarrerasDescripcion, CarrerasAcreditada,
CarrerasVacantes, CarrerasEstado from Carreras
where CarrerasEstado <> ‘E’
order by CarrerasDescripcion
go

Procedimiento almacenado para editar una carrera
Create procedure spCarrerasEditar
(
@CarrerasCodigo nchar(5),
@CarrerasDescripcion nvarchar(100),
@CarrerasAcreditada nchar(1),
@CarrerasVacantes Numeric(9,2)
)
As
update Carreras set
CarrerasDescripcion = @CarrerasDescripcion,
CarrerasAcreditada =@CarrerasAcreditada ,
CarrerasVacantes =@CarrerasVacantes
where CarrerasCodigo = @CarrerasCodigo

go



Ejecutar el procedimiento para actualiza la carrera Medicina con los siguiente datos: Descripción: MEDICINA HUMANA, está acreditada y el número de vacantes es 150
Execute spCarrerasEditar ‘78596’,’MEDICINA HUMANA’,’S’,150,’A’
go

Procedimiento almacenado para eliminar una carrera, la eliminación es lógica, cambia el estado.
Create procedure spCarrerasEliminar
(
@CarrerasCodigo nchar(5)
)
As
update Carreras set
CarrerasEstado = ‘E’
where CarrerasCodigo = @CarrerasCodigo
go

Ejecutar el procedimiento para borrar el registro 89456.
spCarrerasEliminar ‘89456’
go