Está en la página 1de 9

///////procedimiento para insertar un dato-----

CREATE PROCEDURE alumnoinsertar

@carnet char(10), @nombre nvarchar(50),@apellido


nvarchar(50),@municipio nvarchar (50),@nota-promedio float
AS
insert into Alumno(carnet,nombre,apellido,municipio,[nota-promedio])
values (@carnet,@nombre,@apellido,@municipio,@nota-promedio)
exec alumnoinsertar'ch6','vanesa','gonzales','esteli','85'

////////actualizar a un alumno con procedimiento*-----------

CREATE PROCEDURE dbo.ActualizarAdmitido

@Carnet nvarchar(50)

AS

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE

BEGIN TRANSACTION

--actualizando los admitidos

UPDATE i

SET Admitido = 'S'

FROM Carrera c INNER JOIN Inscripcion i ON c.Codigo = i.Codigo

INNER JOIN Alumno a ON a.Carnet = i.Carnet

WHERE a.Nota_Promedio >= c.Nota_Minima

and i.Carnet = @Carnet

--actualizando los no admitidos

UPDATE i

SET Admitido = 'N'

FROM Carrera c INNER JOIN Inscripcion i ON c.Codigo = i.Codigo

INNER JOIN Alumno a ON a.Carnet = i.Carnet

WHERE a.Nota_Promedio < c.Nota_Minima


and i.Carnet = @Carnet

COMMIT TRANSACTION

IF (@@ERROR <> 0)

BEGIN

ROLLBACK TRANSACTION

RAISERROR ('Error al actualizar admitidos', 16, 1)

END

////******actualizando los admitidos

UPDATE i

SET Admitido = 'S'

FROM Carrera c INNER JOIN Inscripcion i ON c.Codigo = i.Codigo

INNER JOIN Alumno a ON a.Carnet = i.Carnet

WHERE a.Nota_Promedio >= c.Nota_Minima

--actualizando los no admitidos

UPDATE i

SET Admitido = 'N'

FROM Carrera c INNER JOIN Inscripcion i ON c.Codigo = i.Codigo

INNER JOIN Alumno a ON a.Carnet = i.Carnet

WHERE a.Nota_Promedio < c.Nota_Minima

///////*************punto d cursor examen 2 parcial*************

DECLARE @Carnet nvarchar(50)

DECLARE @Nota_promedio float


DECLARE cur_alumno CURSOR FOR

SELECT Carnet, Nota_Promedio FROM Alumno

OPEN cur_alumno

FETCH NEXT FROM cur_alumno

INTO @Carnet, @Nota_promedio

WHILE (@@FETCH_STATUS = 0)

BEGIN

DECLARE @Codigo int, @Nota_Minima int

DECLARE @id int

DECLARE cur_inscrip CURSOR FOR

SELECT C.Codigo, C.Nota_Minima, I.id

FROM Carrera C INNER JOIN Inscripcion I

ON C.Codigo = I.Codigo

WHERE I.Carnet = @Carnet

OPEN cur_inscrip

FETCH NEXT FROM cur_inscrip

INTO @Codigo, @Nota_Minima, @id

WHILE (@@FETCH_STATUS = 0)

BEGIN

IF (@Nota_promedio >= @Nota_Minima)

BEGIN

UPDATE Inscripcion

SET
Admitido = 'S'

WHERE (id = @id)

END

ELSE

BEGIN

UPDATE Inscripcion

SET

Admitido = 'N'

WHERE (id = @id)

END

FETCH NEXT FROM cur_inscrip

INTO @Codigo, @Nota_Minima, @id

END

CLOSE cur_inscrip

DEALLOCATE cur_inscrip

FETCH NEXT FROM cur_alumno

INTO @Carnet, @Nota_promedio

END

CLOSE cur_alumno

DEALLOCATE cur_alumno

---------**************************

DECLARE @IdEmpleado int, @codigo int

DECLARE @nombre nvarchar(50)

DECLARE @cont int


set @cont = 1

/**/declare cEmpleados CURSOR FOR

/**/SELECT id_empleado, codigo, nombre FROM empleado

/**/open cEmpleados

/**/FETCH NEXT FROM cEmpleados

/**/INTO @idempleado, @codigo, @nombre

/**/WHILE (@@FETCH_STATUS = 0)

BEGIN

UPDATE empleado

SET

codigo = @cont

WHERE id_empleado = @idempleado

set @cont = @cont + 1

/**/FETCH NEXT FROM cEmpleados

/**/INTO @idempleado, @codigo, @nombre

END

/**/CLOSE cempleados

/**/deallocate cempleados

selinjog argevilla

DECLARE @IdEmpleado int, @codigo int

DECLARE @nombre nvarchar(50)

DECLARE @cont int


set @cont = 1

/**/declare cEmpleados CURSOR FOR

/**/SELECT id_empleado, codigo, nombre FROM empleado

/**/open cEmpleados

/**/FETCH NEXT FROM cEmpleados

/**/INTO @idempleado, @codigo, @nombre

/**/WHILE (@@FETCH_STATUS = 0)

BEGIN

UPDATE empleado

SET

codigo = @cont

WHERE id_empleado = @idempleado

set @cont = @cont + 1

/**/FETCH NEXT FROM cEmpleados

/**/INTO @idempleado, @codigo, @nombre

END

/**/CLOSE cempleados

/**/deallocate cempleados

***********************************************************

DECLARE @IdEmpleado int, @codigo int


DECLARE @nombre nvarchar(50)

DECLARE @cont int

set @cont = 1

/**/declare cEmpleados CURSOR FOR

/**/SELECT id_empleado, codigo, nombre FROM empleado

/**/open cEmpleados

/**/FETCH NEXT FROM cEmpleados

/**/INTO @idempleado, @codigo, @nombre

/**/WHILE (@@FETCH_STATUS = 0)

BEGIN

UPDATE empleado

SET

codigo = @cont

WHERE id_empleado = @idempleado

set @cont = @cont + 1

/**/FETCH NEXT FROM cEmpleados

/**/INTO @idempleado, @codigo, @nombre

END

/**/CLOSE cempleados

/**/deallocate cempleados
************************************************************

---------curso para insertar

SET IDENTITY_INSERT Empleado On

INSERT INTO empleado(id_empleado, codigo, nombre, fechaNac, edad, sexo,


direccion, ip_departamento)

VALUES(100, 0101, 'PRUEBA insert indentity2', '1980-10-13', 32, 'M',


'Corinto', 1)

SET IDENTITY_INSERT Empleado Off

---------************---------------

para actualizar datos

update hdr

set TotalDevengado = dtl.TDev,

TotalDeducciones = dtl.TDed,

TotalAPagar = dtl.TNeto

from quincena hdr inner join

(SELECT id_quincena, SUM(TotalDevengado) as TDev,


SUM(TotalDeducciones) as TDed,

SUM(SalarioNeto) as TNeto

from QuincenaDetalle

where id_quincena = @id_quincena

group by id_quincena) dtl ON hdr.id_quincena = dtl.id_quincena

WHERE hdr.id_quincena = @id_quincena

--------------***************************
ALTER TRIGGER dbo.evitarCarnetDuplicado
ON dbo.Alumno
FOR INSERT, UPDATE
AS
BEGIN
DECLARE @Carnet nvarchar(50)
DECLARE @Id int

SELECT @Carnet = Carnet, @Id = Id


FROM Inserted

IF EXISTS (SELECT Carnet FROM Alumno WHERE Carnet = @Carnet AND Id <> @Id)
BEGIN
RAISERROR ('El nmero de carnet ya existe', 16, 1)
rollback transaction
END
END
GO

---------***************/////////////////
alter TRIGGER dbo.validarNota
ON Alumno
FOR INSERT, UPDATE
AS
BEGIN
--declare @notaPromedio float

--SET @notapromedio = (SELECT Nota_Promedio FROM INSERTED )

--IF (@notapromedio < 0)


--begin
-- raiserror('El valor de la nota no puede ser negativo', 16, 1)
-- rollback transaction
--end
--else if (@notapromedio > 100)
--begin
-- raiserror('El valor de la nota no es valido', 16, 1)
-- rollback transaction
--end

IF EXISTS (SELECT Nota_Promedio FROM INSERTED where Nota_promedio < 0


OR Nota_Promedio > 100)
begin
raiserror('El valor de la nota no es valido', 16, 1)
rollback transaction
end
END

También podría gustarte