VISTAS,FUNCIONES,TRIGERS Y PROCEDIMIENTOS ALMACENADOS EN SQL_SERVER.
Enviado por klimbo3445 • 12 de Marzo de 2018 • 861 Palabras (4 Páginas) • 524 Visitas
...
- Crear un procedimiento almacenado para insertar los datos de un alumno y sus 3 notas (a la tabla t_alumno). El procedimiento además de recibir los datos del alumno (dni, nombres, apellidos, nota1, nota2 y nota3) debe recibir el usuario que ingresa al alumno, los datos se ingresarán a través de una transacción. Si el usuario está registrado como docente la transacción se completa de forma satisfactoria y se informa a través de un mensaje. Si el usuario está registrado como administrativo la transacción debe fallar e informar del fallo a través de un mensaje de error. Si el usuario es inexistente la transacción también fallará e informará del fallo a través de otro mensaje de error.
create procedure Insertar_alumno_1
(@dni varchar(8),@nombres varchar(20),@apellidos varchar(20),
@nota1 int,@nota2 int,@nota3 int,@us_user varchar(8))
as
begin transaction producto
declare @us_nivel varchar(40)
set @us_nivel=(select us_nivel from t_usuario where @us_user=us_user)
insert into t_alumno
values (@dni,@nombres,@apellidos,@nota1,@nota2,@nota3)
if(@us_nivel='doc')
begin
print 'insertacion correcta'
commit transaction
end
else
begin
if(@us_nivel='admin')
begin
print 'no eres docente'
end
else
begin
print 'no esta registrado'
end
rollback transaction
end
select * from t_usuario
select * from t_alumno
exec Insertar_alumno_1 '72835678','RASHELL','MORALES',12,11,13,'72881243'
--------------------------------------------------------------------------
create procedure Insertar_alumno_2
(@dni varchar(8),@nombres varchar(20),@apellidos varchar(20),
@nota1 int,@nota2 int,@nota3 int,@us_nivel varchar(5))
as
begin transaction
if(@us_nivel='doc')
begin
print 'Insertacion correcta'
commit transaction
end
else
begin
if(@us_nivel='admin')
begin
print 'no eres docente'
end
else
begin
print 'no esta registrado'
end
rollback transaction
end
select * from t_usuario
select * from t_alumno
exec Insertar_alumno_2 '72848753','DEYVIS','LOPEZ',12,11,13,'doc’
- Crear las funciones necesarias para poder visualizar los nombres y apellidos de los alumnos (de la tabla t_alumno), su promedio final, y un mensaje que indique “Aprobado” o “Desaprobado”. Para la(s) función(es), se considera aprobado con nota mayor o igual a 11.
Por ejemplo, si la tabla t_alumno tuviera los siguientes registros:
- 46634523, Juan, Rulfo, 09, 10, 11
- 42343242, Gustavo, Becquer, 17,18,19
Lo que se debe mostrar usando la(s) función(es) es:
- Juan, Rulfo, 10, Desaprobado
- Gustavo, Becquer, 18, Aprobado
create function Promedio_Final
(@nota1 int,@nota2 int,@nota3 int)
returns varchar(20)
as
begin
declare @promedio int,@estado varchar(20)
set @promedio=((@nota1+@nota2+@nota3)/3)
if(@promedio>=11)
begin
set @estado='Aprobado'
end
else
begin
set @estado='Desaprobado'
end
return @estado
end
insert into t_alumno values('72345614','JHOYER','CARRASCO',05,08,07)
select nombres,apellidos,dbo.Promedio_Final(nota1,nota2,nota3)as Promedio from t_alumno
Código Completo para ejecutar en SQL Server 2012:
create database BD_Final
-------------------------------------------------
...