Você está na página 1de 21

Funções e Procedimentos

Stored Procedures
Stored Procedures

•Procedimentos Locais - São criados a partir de um banco de dados do próprio usuário.

•Procedimentos Temporários - Existem dois tipos de procedimentos temporários: Locais, que devem
começar com # e Globais, que devem começar com ##.

•Procedimentos de Sistema - Armazenados no banco de dados padrão do SQL Server (Master), podemos
identifica-los com as siglas sp, que se origina de stored procedure. Tais procedures executam as tarefas
administrativas e podem ser executadas a partir de qualquer banco de dados.

•Procedimentos Remotos - Podemos usar Queries Distribuídas para tais procedures. São utilizadas apenas
para compatibilidade.

•Procedimentos Estendidos - Diferente dos procedimentos já citados, este tipo de procedimento recebe a
extensão .dll e são executadas fora do SGBD SQL Server. São identificadas com o prefixo xp.
Quando utilizar procedures

•Quando temos várias aplicações escritas em diferentes linguagens, ou rodam em plataformas


diferentes, porém executam a mesma função.

•Quando damos prioridade à consistência e segurança.


Por que é mais seguro?
Criando um stored procedure

USE BancoDados
GO
CREATE PROCEDURE Busca --- Declarando o nome da procedure
@CampoBusca VARCHAR (20) --- Declarando variável (note que utilizamos o @
antes do nome da variável)
AS
SELECT Codigo, Descrição --- Consulta
FROM NomeTabela
WHERE Descricao = @CampoBusca --- Utilizando variável como filtro para a
consulta

EXECUTE Busca 'DEVMEDIA'


FUNÇÕES

Uma Função é usada para gerar um valor que pode ser usado em uma
expressão. O valor é geralmente baseado em um ou mais parâmetros
fornecidos à Função.
É executada como parte de uma expressão.
A principal diferença entre um Função e uma Procedimento, está em como a
chamamos. Na Procedure temos o comando CALL, já a Function é chamada
através do próprio SELECT, ou seja, nos solicitamos um retorno.
Funções

Sintaxe para criação de uma Função


CREATE FUNCTION nome_função (parâmetros)
RETURNS tipo_dados
Return código_da_função;
Como invocar (chamar) uma Função:
SELECT nome_função(parâmetros);
Funções exemplo

CREATE FUNCTION fn_exemplo (a DECIMAL(10,2), b INT)


RETURNS INT
RETURN a * b;

Invocando a função:

SELECT fn_teste(2.5, 4) AS Resultado;


Funções exemplo

CREATE FUNCTION fn_verPreço (a SMALLINT)


RETURNS VARCHAR(60)
RETURN
(SELECT CONCAT('O preço do livro ', Nome_Livro, ' é ',
Preco_Livro)
FROM tbl_livro
WHERE ID_livro = a);

SELECT fn_verPreço(9);
Views
Views
Vantagens das Views

•Reuso: as views são objetos de caráter permanente. Pensando pelo lado


produtivo isso é excelente, já que elas podem ser lidas por vários
usuários simultaneamente.
•Segurança: as views permitem que ocultemos determinadas colunas de
uma tabela. Para isso, basta criarmos uma view com as colunas que
acharmos necessário que sejam exibidas e as disponibilizarmos para o
usuário.
•Simplificação do código: as views nos permitem criar um código de
programação muito mais limpo, na medida em que podem conter
um SELECT complexo. Assim, criar views para os programadores a fim
de poupá-los do trabalho de criar SELECT’s é uma forma de aumentar a
produtividade da equipe de desenvolvimento.
Criando uma View
Criando uma View

CREATE VIEW vwProdutos AS


SELECT IdProduto AS Código,
Nome AS Produto,
Fabricante,
Quantidade,
VlUnitario AS [ValorUnitario],
Tipo
FROM Produtos
Criando uma View

SELECT * FROM vwProdutos


Alterando uma View

ALTER VIEW vwProdutos AS


SELECT IdProduto AS Código,
Nome AS Produto,
Fabricante,
Quantidade,
VlUnitario AS [ValorUnitario],
Tipo
FROM Produtos
WHERE VlUnitario > 499.00
Excluindo uma View

DROP VIEW vwProdutos


Atividade

Você também pode gostar