Material
  • Material de Banco de Dados
  • Introdução
    • Bancos de Dados
    • Relacional Versus Não Relacional
    • SQL e NoSQL (Não SQL)
    • ACID, CAP e BASE
  • Fundamentos
    • Abstração
    • Modelos de Dados
    • MER e DER
    • Cardinalidades
    • Formas Normais
    • Propriedades ACID
    • Álgebra Relacional
      • Portal para praticar
      • Script para criar o banco de dados
      • Exercício
      • Respostas - Álgebra Relacional
  • Linguagem SQL
    • Linguagens de Banco de Dados
    • CREATE
    • INSERT
    • UPDATE
    • DELETE
    • SELECT
    • VIEW
    • FUNÇÕES
    • PROCEDURES
    • CURSORES
    • TRANSAÇÕES
    • TRIGGERS
    • INDICES
    • CTE
  • Exercícios SQL
    • EXERCÍCIOS Parte 1
    • EXERCÍCIOS Parte 2
    • EXERCÍCIOS Parte 3
    • EXERCÍCIOS Procedure
    • EXERCÍCIOS Procedure - Resolução
  • Tópicos Avançados
    • Novas Tecnologias de armazenamento de dados
      • NoSQL
      • CAP e BASE
      • Big Data
    • Arquiteto de Dados
    • Engenheiro de Dados
    • Cientista de Dados
  • Extras
    • Download SQL Server 2017 e SSMS
    • Instalar SQL Server 2017
    • Instalar SSMS
    • Documentação dos SGBD
  • Canal no Youtube
Powered by GitBook
On this page
  • IF
  • WHILE
  1. Linguagem SQL

PROCEDURES

  • Uma procedure é um bloco de comandos ou instruções SQL organizados para executar uma ou mais tarefas. Ela pode ser utilizada para ser acionada através de uma chamada simples que executa uma série de outros comandos.

CREATE PROCEDURE uspRetornaIdade
@CodigoCliente int
AS
SELECT Clientes.ClienteNome, YEAR(GETDATE())-YEAR(ClienteNascimento) AS IDADE
FROM Clientes
INNER JOIN Contas ON Clientes.ClienteCodigo=Contas.ClienteCodigo
WHERE Clientes.ClienteCodigo = @CodigoCliente;
  • Execução da procedure, opção 1

exec uspRetornaIdade 1;
  • Execução da procedure, opção 2

declare @parametro int
set @parametro = 1 --Código do Cliente desejado
exec uspRetornaIdade @parametro;

IF

  • Comando utilizado para checar condições.

CREATE PROCEDURE uspRetornaSeTemCartao
@CodigoCliente int
AS
BEGIN

DECLARE @CodigoClienteCartao INT

SET @CodigoClienteCartao = (SELECT CartaoCredito.ClienteCodigo FROM Clientes LEFT JOIN CartaoCredito
ON CartaoCredito.ClienteCodigo = Clientes.ClienteCodigo WHERE CartaoCredito.ClienteCodigo = @CodigoCliente)

        IF @CodigoClienteCartao IS NULL
                BEGIN
                SELECT * FROM CartaoCredito WHERE ClienteCodigo = @CodigoCliente;
                END
        ELSE
                BEGIN
                SELECT 'LIGAR', * FROM Clientes WHERE ClienteCodigo = @CodigoCliente
                END

END;

EXEC uspRetornaSeTemCartao @CodigoCliente = 25; -- TEM CARTÃO

EXEC uspRetornaSeTemCartao @CodigoCliente = 1; --NÃO TEM CARTÃO

WHILE

  • Comando utilizado para realizar laços de repetição.

DECLARE @contador INT
SET @contador = 1
WHILE @contador <= 5
BEGIN
  SELECT @contador
  SET @contador = @contador + 1
END
PreviousFUNÇÕESNextCURSORES

Last updated 2 years ago