0% acharam este documento útil (0 voto)
113 visualizações8 páginas

Procedure e Function - Banco de Dados

[1] Procedures são conjuntos de comandos SQL armazenados no servidor que podem ser acionados por programas aplicativos autorizados. [2] Existem procedures definidas pelo usuário e pelo sistema. [3] Procedures facilitam o gerenciamento e encapsulam rotinas frequentemente usadas no banco de dados.

Enviado por

Mikael Vital
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
113 visualizações8 páginas

Procedure e Function - Banco de Dados

[1] Procedures são conjuntos de comandos SQL armazenados no servidor que podem ser acionados por programas aplicativos autorizados. [2] Existem procedures definidas pelo usuário e pelo sistema. [3] Procedures facilitam o gerenciamento e encapsulam rotinas frequentemente usadas no banco de dados.

Enviado por

Mikael Vital
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 8

Procedure

Definição: Conjunto de comandos SQL que são compilados e armazenados no servidor. Podem ser
armazenados no banco de dados e acionados por qualquer programa aplicativo que tenha
autorização para execução.

Tipos de Procedures:
- Stored Procedure: definidas pelo usuário

- System Stored Procedure: disponibilizadas pelo sistema de banco de dados. ​


- Podem ser executadas em qualquer banco ​
- Estão armazenadas no banco de dados master​
- Todas as stored procedures iniciam por “sp_”

Funcionamento: No entanto, se criarmos uma stored procedure para executar esta consulta, os
usuário necessitará apenas de um comando para executar a consulta anterior.

Comando:
EXEC nomeProcedimento;​

Benefícios:
- Facilita o gerenciamento​.

- Encapsulam rotinas de uso frequente no próprio servidor, estando disponível para várias
aplicações​.

- Parte da lógica do sistema pode ser armazenada no próprio BD, em vez de ser codificada em
várias aplicações.

Como funciona a sintaxe

CREATE PROCEDURE <nome> [parâmetro]​


AS <instruções SQL>

Explicando a sintaxe e regras

O nome da procedure deve seguir as regras para criação de identificadores​.

Nome do parâmetro deve iniciar por @ e deve ser único na lista de argumentos, seguido do seu
tipo: @mes int, @ano int, @nome varchar​.

Todos os parâmetros são considerados de entrada, exceto se houver OUTPUT após sua definição​.
Como se executa?

EXEC <nome da sp> [valor do parâmetro]​

Exemplo de procedure:

CREATE PROCEDURE sp_totalSal​

@setor char(3)​

AS​

SELECT SUM(salario)​
FROM funcionario​
WHERE setor = @setor​

EXEC sp_totalSal ‘INF’​

Exemplo de procedure com parâmetro de saída:

CREATE PROCEDURE spCambio​

@dolar decimal(4,2),​
@reais decimal(7,2),​
@final decimal(7,2) output​

AS​

SELECT @final = @reais/@dolar

DECLARE @res decimal(7,2)​

EXEC spCambio 2.33, 2500, ​

@res output​

SELECT @res Conversao


Variáveis

Definição: Objetos que armazenam valores de acordo com o tipo especificado​.

Como usar:

DECLARE @<nome_var> <tipo>

Observações:

- Quando uma variável é criada, o seu valor inicial é NULL​

- Recebem valores com SET ou SELECT

Exemplo:

DECLARE @quant int, @estado char(2), @nome varchar(40)​

SET @quant = 100​

SELECT @estado = ‘PB’​

SELECT @nome = (SELECT f.nome FROM​

funcionario f WHERE f.cod = 1500)​

SELECT @quant, @estado, @nome​

GO

Estruturas de Repetição

Definição: Estrutura de repetição que executa um bloco de comandos enquanto uma determinada
condição for avaliada como verdadeira.

Como se executa?

WHILE <condicao>​
comandos sql​
[BREAK]​
[CONTINUE]​

Observações:
- A condição deve ser expressa por uma expressão lógica que retorna Verdadeiro ou Falso e
pode conter um SELECT, que deve estar entre parênteses​.
Exemplo: Criar uma stored procedure que reajuste o preço dos produtos de acordo com as seguintes
regras:​

- O percentual de aumento dos produtos será fornecido como parâmetro​

- Os produtos só sofrerão reajuste desde que a média de preço seja inferior ao valor de uma
média passado como parâmetro ​

- Os produtos sofrerão reajustes repetidas vezes até que o maior preço não ultrapasse o limite
estabelecido por parâmetro​

Resultado:

CREATE PROCEDURE spReajusta​

@percentual numeric(5,2), @media money, @maior money​

AS​

WHILE (SELECT AVG(venda) FROM produto) < @media​

BEGIN​

UPDATE produto​

SET venda = venda*(1+@percentual/100)​

Print ('Atualiza o preço') ​

IF (SELECT MAX(venda) FROM produto) >= @maior​

BREAK​

ELSE​

Print ('continua')​

END​

Functions

Definição: A função pode receber e tratar diversos parâmetros da mesma maneira que o
procedimento. A diferença entre um procedimento e uma função reside no fato de que a função
sempre retorna um valor.​

Como se executa?

CREATE FUNCTION <nome> [parâmetro]​


RETURNS Tipo_retorno​
AS <instruções SQL>​
Exemplo:

CREATE FUNCTION sf_Fat(@Num Integer) Returns int as​

BEGIN​

DECLARE @Fator INT, @I INT​

SET @Fator = 1​
SET @I = 1​
IF (@Num > 1)​

WHILE (@I <= @Num)​

BEGIN​

SET @Fator = @Fator * @I;​


SET @I = @I + 1​

END​

RETURN (@Fator) ​

END​

Execução:

Select sf_Fat (5)

Considerações de pontos sobre Procedures de acordo com as atividades do professor:


- Para receber parâmetros do usuário, uma stored procedure não precisa ser convertida em
uma function, pois, nativamente, oferece esse recurso.
- Para receber parâmetros do usuário, uma procedure não precisa ser convertida em uma
function, pois ela já oferece esse recurso nativamente.
- Para representar variáveis, é utilizado o símbolo @.
- As procedures representam programas armazenados no servidor de banco de dados
(apenas em bancos relacionais).


Possíveis questões que cairão na prova sobre Procedures

Você também pode gostar