Está en la página 1de 4

-------------------------------------

-- PROCEDIMIENTOS ALMACENADOS -------


-------------------------------------

-- CREAR PROCEDIMIENTOS ALMACENADOS SIN PARÁMETROS


----------------------------------------------------
-- CREATE PROC <nombre_procedimiento>
-- AS
-- BEGIN
-- <instrucciones sql>
-- END
-----------------------------------------------------

-- Crear un P.A. para generar un listado de todos los estudiantes matriculados


-- en la universidad

CREATE PROC sp_reportealumnosmatriculados


AS
BEGIN
SELECT distinct ta.CodAlumno, CONCAT( Nombres,' ', ApellidoP,' ',ApellidoM)
AS Alumno
FROM TAlumno ta inner join TMatricula tm
on ta.CodAlumno=tm.CodAlumno
END
---
-- LLamar al procedimiento almacenado

-- EXEC <nombreprocedimiento>

EXEC sp_reportealumnosmatriculados

-- Modificar el procedimiento
-------------------------------------------------------
-- ALTER PROC <nombre_procedimiento>
-- AS
-- BEGIN
-- <modificación de instrucciones sql>
-- END
-------
-- Modificar el procedimiento almacenado sp_reportealumnosmatriculados, en vez de
-- alumnos debe de decir Estudiante y agregar el código de la escuela

ALTER PROC sp_reportealumnosmatriculados


AS
BEGIN
SELECT distinct ta.CodAlumno,
CONCAT( Nombres,' ', ApellidoP,' ',ApellidoM) AS Estudiante, CodCarreraP
FROM TAlumno ta inner join TMatricula tm
on ta.CodAlumno=tm.CodAlumno
END
----
EXEC sp_reportealumnosmatriculados -- Ejecuntado el P.A.

-- Eliminar un Procedimiento Almacenado


-- DROP PROC <nombreprocedimiento>

-- Eliminar el procedimiento sp_reportealumnosmatriculados


DROP PROC sp_reportealumnosmatriculados
------------------------------------------------------------
-- Procedimientos Almacenados con Parámetros de Entrada
------------------------------------------------------------

-- CREATE PROC <nombre_procedimiento>


-- @Parametro1 tipodato, @parametro2 tipodato ...
-- AS
-- BEGIN
-- <instrucciones sql>
-- END
-------

-- Crear un P.A. para generar la constancia notas de un semestre determinado


-- y de un estudiante en particular.

CREATE PROC sp_constancianotas


@semestre char(6), @codalumno char(3)
AS
BEGIN
SELECT TAS.CodAsignatura AS CÓDIGO, NomAsignatura AS ASIGNATURA, NOTA,
Observacion
FROM TAsignatura TAS INNER JOIN TMatricula TM ON
TM.CodAsignatura=TAS.CodAsignatura
WHERE semestre=@semestre and CodAlumno=@codalumno
END

-- EJECUTAR
EXEC sp_constancianotas '2016-1', 'A02'

-- Crear un P.A. para generar las actas de notas de una determinada asignatura
-- en un semestre específico.

CREATE PROC sp_actasnotas


@codasignatura char(3), @semestre char(6)
AS
BEGIN
SELECT TA.CodAlumno, CONCAT(Nombres,' ',ApellidoP,' ',ApellidoM) AS ALUMNO,
NOTA
FROM TAlumno TA INNER JOIN TMATRICULA TM ON TA.CodAlumno=TM.CodAlumno
WHERE CodAsignatura=@codasignatura AND semestre=@semestre
END
--
EXEC sp_actasnotas 'A01','2016-1'
EXEC sp_actasnotas 'A01','2016-2'
EXEC sp_actasnotas 'A02','2016-1'

-- CREAR UN P.A. PARA VISUALIZAR A LOS ESTUDIANTES QUE APROBARON UNA


-- DETERMINADA ASIGNATURA, EN UN DETERMINADO SEMESTRE.

CREATE PROC sp_alumnoaprobados


@codasignatura char(3), @semestre char(6)
AS
BEGIN
SELECT TA.CodAlumno, CONCAT(Nombres,' ',ApellidoP,' ',ApellidoM) AS ALUMNO,
NOTA
FROM TAlumno TA INNER JOIN TMATRICULA TM ON TA.CodAlumno=TM.CodAlumno
WHERE CodAsignatura=@codasignatura AND semestre=@semestre
and nota>10
END
---
EXEC sp_alumnoaprobados 'A01','2016-2'

-- CREAR UN P.A. PARA VISUALIZAR A LOS ESTUDIANTES QUE APROBARON O DESAPROBARON


-- SEGÚN EL REQUERIMIENTO DE UNA
-- DETERMINADA ASIGNATURA, EN UN DETERMINADO SEMESTRE.

CREATE PROC sp_reporteaprobados_desaprobados


@codasignatura char(3), @semestre char(6), @Observacion varchar(12)
AS
BEGIN
SELECT TA.CodAlumno, CONCAT(Nombres,' ',ApellidoP,' ',ApellidoM) AS ALUMNO,
NOTA
FROM TAlumno TA INNER JOIN TMATRICULA TM ON TA.CodAlumno=TM.CodAlumno
WHERE CodAsignatura=@codasignatura AND semestre=@semestre
and Observacion=@observacion
END
---
EXEC sp_reporteaprobados_desaprobados 'A02','2016-1','desaprobado'

-- PROCEDIMIENTOS ALMACENADOS PARA OPERACIONES DE MANTENIMIENTO


-----------------------------------------------------------------
-- P.A. PARA INSERTAR REGISTROS
------------------------------------

-- CREAR UN P.A. PARA INSERTAR REGISTROS A LA TABLA CARRERA PROFESIONAL

CREATE PROC sp_insertTcarrera


@codc char(3),@nom varchar(30),@fecha date, @resol varchar(100)
AS
BEGIN
INSERT INTO TcarrProfe VALUES(@codc,@nom,@fecha,@resol)
END

--
set dateformat dmy
EXEC sp_insertTcarrera 'AD','ADMINISTRACIÓN','26/10/2023','Resolución CU 500-2023'
EXEC sp_insertTcarrera 'CO','CONTABILIDAD','26/10/2023','Resolución CU 501-2023'

CREATE PROC sp_insertAlumno


@Ap varchar(30), @Am varchar(30), @nom varchar(30), @CC char(3)
As
BEGIN
DECLARE @CONTAR INT, @COD CHAR(3)
SET @CONTAR=(SELECT COUNT(*)+1 FROM TAlumno)
SET @COD= CONCAT('A',@CONTAR)
INSERT INTO TALUMNO VALUES(@COD, @Ap,@Am,@nom,@CC)
END
------
EXEC sp_insertAlumno 'Peralta','Ascue','Marleny','IS'
EXEC sp_insertAlumno 'Peralta','Ascue','Myriam','IS'

SELECT * FROM TcarrProfe


SELECT * FROM TALUMNO

-- PROCEDIMIENTOS ALMACENADOS PARA ACTUALIZAR REGISTROS


--------------------------------------------------------
-- CREAR UN P.A. Para actualizar registrso en la tabla carrera profesional

CREATE PROC sp_updateTcarrera


@codc char(3),@nom varchar(30),@fecha date, @resol varchar(100)
AS
BEGIN
UPDATE TcarrProfe
SET NomCarreraP=@nom, FechaCreacion=@fecha, Resolucion=@resol
WHERE CodCarreraP=@codc
END
-----
set dateformat dmy
EXEC sp_updateTcarrera 'AD','ADMINISTRACIÓN','01/10/2023','Resolución CU 100-2023'
EXEC sp_updateTcarrera 'CO','CONTABILIDAD','26/10/2023','Resolución CU 101-2023'

--- PROCEDIMIENTOS ALMACENADOS PARA ELIMINAR REGISTROS


---------------------------------------------------------------

CREATE PROC sp_eliminarTcarrera


@cod char(3)
AS
BEGIN
DELETE TcarrProfe WHERE CodCarreraP=@cod
END
--------------
EXEC sp_eliminarTcarrera 'CO'

SELECT * FROM TcarrProfe

También podría gustarte