Advertisement
Guest User

Untitled

a guest
Mar 19th, 2018
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 6.75 KB | None | 0 0
  1. --3)
  2. --A) Crie um procedimento para receber o id de um instrutor que seja capaz de retornar a quantidade de turmas que ele leciona.
  3. CREATE PROCEDURE A -- Cria um Procedimento com o nome A
  4. @idInstrutor INT -- Declara uma variável do tipo Inteiro com o nome 'idInstrutor'
  5. AS -- Não sei o significado.
  6.     BEGIN -- Inicio do corpo do procedimento
  7.     DECLARE @Resposta INT -- Declara uma variável do tipo Inteiro que recebera o id do Instrutor na tabela Turma.
  8.     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.
  9.     OPEN cursorQtd -- Abre o cursor
  10.         BEGIN -- Inicio/ Corpo do cursor
  11.         FETCH NEXT FROM cursorQtd INTO @Resposta -- Lê a primeira linha na tabela e coloca a resposta na variável @Resposta
  12.         WHILE @@FETCH_STATUS = 0 -- Verifica se a próxima linha esta presente / enquanto for diferente de 0 é executado o que estiver o procedimento abaixo
  13.             BEGIN -- Inicio While
  14.             FETCH NEXT FROM cursorQtd INTO @Resposta --Lê a próxima linha e coloca o resultado dentro da váriavel @resposta
  15.             END -- Fim do While
  16.         END -- Fim do corpo do cursor
  17.     CLOSE cursorQtd -- Fecha o Cursor
  18.     DEALLOCATE cursorQtd -- Desaloca o cursor
  19.     return @resposta -- Retorna o valor da váriavel
  20.     END -- Fim do corpo do Procedimento.
  21. -- 
  22. DECLARE @SAIDA INT -- Declara uma variável do tipo Inteiro com o nome Saída
  23. EXEC @SAIDA = A 2 -- Atribui a variável saída o procedure A passando o número 2 como parâmetro
  24. PRINT @SAIDA -- Imprime o resultado da variável saída
  25. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  26. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  27. --B) Crie um procedimento que receba o número de matricula de um aluno e mostre todas as atividades que ele está matriculado.
  28. alter PROCEDURE B -- Cria um Procedimento com o nome B
  29. @codMatricula INT -- Cria uma variável do tipo inteiro com o nome CodMatricula
  30. AS --
  31.     BEGIN -- Inicio corpo do Procedimento
  32.     DECLARE @atividades varchar(100) -- Declara uma variável do tipo Varchar com o nome 'Atividade
  33.     DECLARE @aluno VARCHAR(45) -- Declara uma variável do tipo Varchar com o nome aluno
  34.     DECLARE cursorAluno CURSOR STATIC FOR (Select A.nome FROM ALUNO A INNER JOIN matricula M ON -- linha 1
  35.     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
  36.     OPEN cursorAluno -- Abre o curor
  37.     BEGIN -- Inicio do corpo do cursor Aluno
  38.     FETCH NEXT FROM cursorAluno INTO @aluno -- pega a primeira linha da consulta e coloca na variável Aluno
  39.     WHILE @@FETCH_STATUS = 0 -- Verifica se a proxima linha é nula
  40.                 BEGIN -- Inicio While
  41.                 FETCH NEXT FROM cursorAluno INTO @aluno -- Pega o valor da primeira linha e coloca nas variáveis que foram criadas
  42.                 END -- Fim While
  43.                 print 'Nome do Aluno: ' + @aluno -- Imprime o nome do aluno na tela
  44.     DECLARE cursorAtividades CURSOR STATIC FOR(SELECT A.nome FROM atividade A JOIN TURMA T -- cria um cursor com o nome Cursor Atividades
  45.     ON T.ATIVIDADE_IDATIVIDADE = A.IDATIVIDADE JOIN matricula M ON -- linha 1
  46.     M.turma_idturma = T.idturma WHERE M.aluno_codMatricula = @codMatricula ) --Cria um cursor que faz uma pesquida dentro do banco
  47.     OPEN cursorAtividades -- Abre o Cursor
  48.         BEGIN -- Inicio do corpo do cursor
  49.             FETCH NEXT FROM cursorAtividades INTO @atividades -- Pega o valor da primeira linha e coloca nas variáveis que foram criadas
  50.             WHILE @@FETCH_STATUS = 0 -- Verifica se a proxima linha é nula
  51.                 BEGIN -- inicio While
  52.                 print 'Atividade: ' + @atividades -- Imprime as atividades na tela
  53.                 FETCH NEXT FROM cursorAtividades INTO @atividades -- Pega o valor da primeira linha e coloca nas variáveis que foram criadas
  54.                 END -- Fim While
  55.         END -- Fim do corpo cursor
  56.         CLOSE cursorAtividades -- Fecha o cursor Atividade
  57.         DEALLOCATE cursorAtividades -- Desaloca o cursor Atividade
  58. END -- Fim do cursor Aluno
  59.     CLOSE cursorAluno -- Fecha o cursor Aluno
  60.     DEALLOCATE cursorAluno -- Desaloca o Curor Aluno
  61. END -- Fim do procedimento B
  62. --
  63. DECLARE @SAIDA INT -- Declara uma variável do tipo Inteiro com o nome Saída
  64. EXEC @SAIDA = B 1 -- Atribui a variável saída o procedure B passando o número 1 como parâmetro
  65. PRINT @SAIDA -- Imprime o resultado da variável saída
  66. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  67. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  68. --C) Faça um procedimento que seja capaz de matricular todo aluno com sobrepeso (ou acima)
  69. --em aulas de uma determinada atividade passada por parâmetro.
  70. ALTER PROCEDURE C -- Cria um Procedimento com o nome C
  71. @idAtividade INT -- Declara uma variável do tipo Int com o nome idAtividade
  72. AS --
  73. BEGIN -- Inicio do procedimento
  74. DECLARE @codMatricula INT -- Declara uma variável do tipo int com o nome codMatricula
  75. DECLARE @idTurma INT -- Declara uma variável do tipo Int com o nome idTurma
  76. DECLARE cursorIMC CURSOR STATIC FOR (SELECT codMatricula, turma_idturma FROM aluno WHERE peso/(altura*altura)>25) -- Declara um cursor com o nome
  77. -- cursorIMC que vai percorrer o select acima.
  78.     OPEN cursorIMC -- Abre o cursor
  79.         BEGIN -- Inicio do corpo do cursor
  80.         FETCH NEXT FROM cursorIMC INTO @codMatricula, @idTurma -- Guarda primeira linha nas variáveis codMatricula e idTurma
  81.         WHILE @@FETCH_STATUS = 0 -- Verifica se a próxima linha é nula
  82.             BEGIN -- Inicio do While
  83.             if @codMatricula <> 0 -- Verifica se o aluno ja esta em alguma turma
  84.             BEGIN -- Inicio do IF
  85.                 update matricula -- Faz um update na tabela matricula
  86.                 set aluno_codMatricula = @codMatricula -- na linha aluno_codMatricula passando  @codMatricula como novo valor
  87.                 update matricula -- Faz um update na tabela matricula
  88.                 set turma_idturma = @idTurma -- na linha  turma_idturma passando  @idTurma como novo valor
  89.             END -- Fim do If
  90.             FETCH NEXT FROM cursorIMC INTO @codMatricula, @idTurma -- Guarda Proxima linha nas variáveis codMatricula e idTurma
  91.             END -- Fim do While
  92.         END -- Fim do corpo do Cursor
  93.     CLOSE cursorIMC -- Fecha o Cursor
  94.     DEALLOCATE cursorIMC -- Desaloca o Cursor
  95. END -- Fim do Procedimento
  96.  
  97.  
  98. DECLARE @SAIDA INT -- Declara uma variável do tipo Inteiro com o nome Saída
  99. EXEC @SAIDA = C 2-- Atribui a variável saída o procedure B passando o número 1 como parâmetro
  100. PRINT @SAIDA -- Imprime o resultado da variável saída
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement