Você está na página 1de 2

//Exercício 1: Procedimento Simples de Seleção

CREATE PROCEDURE SelecionarEstudantes


AS
BEGIN
SELECT * FROM estudantes;
END;

//Exercício 2: Procedimento com Parâmetro


CREATE PROCEDURE BuscarEstudantePorNome
@NomeEstudante NVARCHAR(100)
AS
BEGIN
SELECT * FROM estudantes WHERE Nome = @NomeEstudante;
END;

//Exercício 3: Procedimento com Instrução de Controle


CREATE PROCEDURE AtualizarNota
@EstudanteID INT,
@NovaNota INT
AS
BEGIN
DECLARE @NotaExistente INT;

SELECT @NotaExistente = Nota FROM estudantes WHERE EstudanteID = @EstudanteID;

IF @NovaNota > @NotaExistente


BEGIN
UPDATE estudantes SET Nota = @NovaNota WHERE EstudanteID = @EstudanteID;
END;
END;

//Exercício 4: Procedimento com Cursor


CREATE PROCEDURE ListarCursosEstudante
@EstudanteID INT
AS
BEGIN
DECLARE @CursoID INT;
DECLARE CursoCursor CURSOR FOR
SELECT CursoID FROM matriculas WHERE EstudanteID = @EstudanteID;

OPEN CursoCursor;
FETCH NEXT FROM CursoCursor INTO @CursoID;

WHILE @@FETCH_STATUS = 0
BEGIN
-- Processar cada curso
SELECT * FROM cursos WHERE CursoID = @CursoID;

FETCH NEXT FROM CursoCursor INTO @CursoID;


END;

CLOSE CursoCursor;
DEALLOCATE CursoCursor;
END;

//Exercício 5: Procedimento com Transação


CREATE PROCEDURE RegistrarMatricula
@EstudanteID INT,
@CursoID INT
AS
BEGIN
BEGIN TRANSACTION;

-- Inserir na tabela de matrículas


INSERT INTO matriculas (EstudanteID, CursoID) VALUES (@EstudanteID, @CursoID);

-- Atualizar outras tabelas conforme necessário

-- Commit da transação se tudo ocorrer bem


COMMIT;
END;

Você também pode gostar