Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --3)
- --A) Crie um procedimento para receber o id de um instrutor que seja capaz de retornar a quantidade de turmas que ele leciona.
- CREATE PROCEDURE A -- Cria um Procedimento com o nome A
- @idInstrutor INT -- Declara uma variável do tipo Inteiro com o nome 'idInstrutor'
- AS -- Não sei o significado.
- BEGIN -- Inicio do corpo do procedimento
- DECLARE @Resposta INT -- Declara uma variável do tipo Inteiro que recebera o id do Instrutor na tabela Turma.
- DECLARE cursorQtd CURSOR STATIC FOR(SELECT COUNT(*) FROM turma WHERE @idInstrutor = turma.instrutor_idinstrutor) -- Cria um cursor que recebe o id de Instrutor na tabela turma.
- OPEN cursorQtd -- Abre o cursor
- BEGIN -- Inicio/ Corpo do cursor
- FETCH NEXT FROM cursorQtd INTO @Resposta -- Lê a primeira linha na tabela e coloca a resposta na variável @Resposta
- WHILE @@FETCH_STATUS = 0 -- Verifica se a próxima linha esta presente / enquanto for diferente de 0 é executado o que estiver o procedimento abaixo
- BEGIN -- Inicio While
- FETCH NEXT FROM cursorQtd INTO @Resposta --Lê a próxima linha e coloca o resultado dentro da váriavel @resposta
- END -- Fim do While
- END -- Fim do corpo do cursor
- CLOSE cursorQtd -- Fecha o Cursor
- DEALLOCATE cursorQtd -- Desaloca o cursor
- return @resposta -- Retorna o valor da váriavel
- END -- Fim do corpo do Procedimento.
- --
- DECLARE @SAIDA INT -- Declara uma variável do tipo Inteiro com o nome Saída
- EXEC @SAIDA = A 2 -- Atribui a variável saída o procedure A passando o número 2 como parâmetro
- PRINT @SAIDA -- Imprime o resultado da variável saída
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- --B) Crie um procedimento que receba o número de matricula de um aluno e mostre todas as atividades que ele está matriculado.
- alter PROCEDURE B -- Cria um Procedimento com o nome B
- @codMatricula INT -- Cria uma variável do tipo inteiro com o nome CodMatricula
- AS --
- BEGIN -- Inicio corpo do Procedimento
- DECLARE @atividades varchar(100) -- Declara uma variável do tipo Varchar com o nome 'Atividade
- DECLARE @aluno VARCHAR(45) -- Declara uma variável do tipo Varchar com o nome aluno
- DECLARE cursorAluno CURSOR STATIC FOR (Select A.nome FROM ALUNO A INNER JOIN matricula M ON -- linha 1
- A.codMatricula = M.aluno_codMatricula where aluno_codMatricula = @codMatricula) -- Cria um cursor com o nome cursor aluno que receba o nome do aluno na tabela
- OPEN cursorAluno -- Abre o curor
- BEGIN -- Inicio do corpo do cursor Aluno
- FETCH NEXT FROM cursorAluno INTO @aluno -- pega a primeira linha da consulta e coloca na variável Aluno
- WHILE @@FETCH_STATUS = 0 -- Verifica se a proxima linha é nula
- BEGIN -- Inicio While
- FETCH NEXT FROM cursorAluno INTO @aluno -- Pega o valor da primeira linha e coloca nas variáveis que foram criadas
- END -- Fim While
- print 'Nome do Aluno: ' + @aluno -- Imprime o nome do aluno na tela
- DECLARE cursorAtividades CURSOR STATIC FOR(SELECT A.nome FROM atividade A JOIN TURMA T -- cria um cursor com o nome Cursor Atividades
- ON T.ATIVIDADE_IDATIVIDADE = A.IDATIVIDADE JOIN matricula M ON -- linha 1
- M.turma_idturma = T.idturma WHERE M.aluno_codMatricula = @codMatricula ) --Cria um cursor que faz uma pesquida dentro do banco
- OPEN cursorAtividades -- Abre o Cursor
- BEGIN -- Inicio do corpo do cursor
- FETCH NEXT FROM cursorAtividades INTO @atividades -- Pega o valor da primeira linha e coloca nas variáveis que foram criadas
- WHILE @@FETCH_STATUS = 0 -- Verifica se a proxima linha é nula
- BEGIN -- inicio While
- print 'Atividade: ' + @atividades -- Imprime as atividades na tela
- FETCH NEXT FROM cursorAtividades INTO @atividades -- Pega o valor da primeira linha e coloca nas variáveis que foram criadas
- END -- Fim While
- END -- Fim do corpo cursor
- CLOSE cursorAtividades -- Fecha o cursor Atividade
- DEALLOCATE cursorAtividades -- Desaloca o cursor Atividade
- END -- Fim do cursor Aluno
- CLOSE cursorAluno -- Fecha o cursor Aluno
- DEALLOCATE cursorAluno -- Desaloca o Curor Aluno
- END -- Fim do procedimento B
- --
- DECLARE @SAIDA INT -- Declara uma variável do tipo Inteiro com o nome Saída
- EXEC @SAIDA = B 1 -- Atribui a variável saída o procedure B passando o número 1 como parâmetro
- PRINT @SAIDA -- Imprime o resultado da variável saída
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- --C) Faça um procedimento que seja capaz de matricular todo aluno com sobrepeso (ou acima)
- --em aulas de uma determinada atividade passada por parâmetro.
- ALTER PROCEDURE C -- Cria um Procedimento com o nome C
- @idAtividade INT -- Declara uma variável do tipo Int com o nome idAtividade
- AS --
- BEGIN -- Inicio do procedimento
- DECLARE @codMatricula INT -- Declara uma variável do tipo int com o nome codMatricula
- DECLARE @idTurma INT -- Declara uma variável do tipo Int com o nome idTurma
- DECLARE cursorIMC CURSOR STATIC FOR (SELECT codMatricula, turma_idturma FROM aluno WHERE peso/(altura*altura)>25) -- Declara um cursor com o nome
- -- cursorIMC que vai percorrer o select acima.
- OPEN cursorIMC -- Abre o cursor
- BEGIN -- Inicio do corpo do cursor
- FETCH NEXT FROM cursorIMC INTO @codMatricula, @idTurma -- Guarda primeira linha nas variáveis codMatricula e idTurma
- WHILE @@FETCH_STATUS = 0 -- Verifica se a próxima linha é nula
- BEGIN -- Inicio do While
- if @codMatricula <> 0 -- Verifica se o aluno ja esta em alguma turma
- BEGIN -- Inicio do IF
- update matricula -- Faz um update na tabela matricula
- set aluno_codMatricula = @codMatricula -- na linha aluno_codMatricula passando @codMatricula como novo valor
- update matricula -- Faz um update na tabela matricula
- set turma_idturma = @idTurma -- na linha turma_idturma passando @idTurma como novo valor
- END -- Fim do If
- FETCH NEXT FROM cursorIMC INTO @codMatricula, @idTurma -- Guarda Proxima linha nas variáveis codMatricula e idTurma
- END -- Fim do While
- END -- Fim do corpo do Cursor
- CLOSE cursorIMC -- Fecha o Cursor
- DEALLOCATE cursorIMC -- Desaloca o Cursor
- END -- Fim do Procedimento
- DECLARE @SAIDA INT -- Declara uma variável do tipo Inteiro com o nome Saída
- EXEC @SAIDA = C 2-- Atribui a variável saída o procedure B passando o número 1 como parâmetro
- PRINT @SAIDA -- Imprime o resultado da variável saída
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement