A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Stored Procedure, Function and Trigger

Apresentações semelhantes


Apresentação em tema: "Stored Procedure, Function and Trigger"— Transcrição da apresentação:

1 Stored Procedure, Function and Trigger

2 Objetivos Programando no banco de dados Stored Procedure Function
Trigger

3 1. Programando no banco de dados
1.1 Variáveis 1.2 Controle de fluxo

4 1.1 Variáveis Declaração de variáveis: Atribuindo valor à variável:
Atribuindo valor à variável: Atribuindo valor à no bloco SQL: = price FROM titles WHERE  title_id = 'PC2091'

5 1.2 Controle de fluxo 1.2.1 BEGIN…END IF…ELSE CASE … WHEN RETURN [n] WHILE PRINT

6 1.2.1 BEGIN…END Define os blocos de código (início/fim)
Outras linguagens de programação: C#, Java, C: { … } Pascal, Delphi: BEGIN … END

7 1.2.2 IF…ELSE Condicional IF Condição Código T-SQL | bloco de código
Exemplo: IF (SELECT vendasAno FROM livros WHERE livro_id = 'PC1035') > 5000 PRINT ‘Vendas no ano são que R$5000,00 para PC1035.‘

8 1.2.3 CASE … WHEN CASE input_expression
WHEN  when_expression  THEN result_expression  [WHEN when_expression  THEN result_expression…n] [ELSE else_result_expression ] END Exemplo: SELECT CASE regra WHEN '30' THEN ‘Pagar 30 dias após a nota final' WHEN '60' THEN ' Pagar 60 dias após a nota final '   WHEN ‘No ato' THEN ‘Pagar quando receber a nota fiscal'      ELSE ‘Nenhum'     END as RegrasPagamentos FROM vendas Outras linguagens de programação C#, Java: Switch … Case ; VB: Select … Case

9 RETURN [n] Pode ser usado para Trigger, Procedure ou Function e returna um valor.

10 WHILE Repete o bloco de código enquanto a condição for verdadeira WHILE Condição  Código SQL | bloco de códico [BREAK] Código SQL | bloco de código [CONTINUE] Exemplo: WHILE (SELECT AVG(comissao) FROM vendas) < 25 BEGIN UPDATE  vendas  SET comissao = comissao * 1.05 IF (SELECT MAX(comissao)FROM vendas) > 27 BREAK ELSE CONTINUE END SELECT MAX(comissao) AS “Comissão Máxima"  FROM vendas

11 1.2.6 PRINT Mostra mensagem no SQL Query Analyze (Console)
PRINT string Outras linguagens de programação: Java: System.out.print C#, VB.NET: Console.WriteLine

12 2. Stored Procedure 2.1 O que é uma Stored Procedure? 2.2 Stored Procedure vs. comando SQL 2.3 Criar, alterar e apagar uma procedure

13 2.1 O que é uma Store Procedure?
Uma stored procedure é uma coleção de comandos T-SQL que SQL Server compila em um plano de execução. A Procedure é armazenada em um area de cache da memoria queando é executada pela primeira vez. Isso é feito para que o SQL Server não precise recompilar ela cada vez que for ser executada. Ela aceita parametros de entrada, parâmetros de saída e pode retornar mensagens de sucesso ou falha.

14 2.2 Stored Procedure vs. Comando SQL
SQL Statement Stored Procedure Criação - Verifica sintaxe - Compila Primeira execução - Verifica sintaxe - Compila Executa Returna dados Primeira execução Execute Returna dados Segunda execução - Verifica sintaxe - Compila Executa Returna dados Segunda execução Executa Returna dados

15 2.3 Criar, alterar e apagar uma procedure
2.3.1 Criar uma Procedure Alterar uma Procedure Apagar uma Procedure

16 Create a Procedure Sintaxe Exemplo 1 (sem parametros) Exemplo 2 (com parametros) Exemplo 3 (usando RETURN)

17 Sintaxe CREATE PROC[EDURE] nome_procedure OUTPUT][,...,n] AS  CódigoT-SQL (s)

18 2.3.1.2 Exemplo 1 (sem parametros)
CREATE PROC Membros_Departamento AS SELECT Dep_Nome, COUNT(Emp_ID) NumeroMembros FROM Departamentos D, Empregados E WHERE D.Dep_ID = E.Dep_ID GROUP BY Dep_Nome Run Procedure Execute Membros_Departamento

19 2.3.1.3 Exemplo 2 (com parametros)
CREATE PROC varchar(50) AS SELECT Dep_Nome, COUNT(Emp_ID) NumeroEmpregados FROM Departamentos D, Empregados E WHERE D.Dep_ID = E.Dep_ID and Dep_Nome GROUP BY Dep_Nome Run Procedure Execute Membros_Departamento ‘Contabilidade’

20 2.3.1.4 Exemplo 3 (Using RETURN )
CREATE PROC varchar(10) = null AS Cod_Emp is null BEGIN PRINT ‘Por favor entre com o código do empregado!' RETURN END SELECT * FROM Empregados WHERE Cod_Emp Cod_Emp ORDER BY Nome

21 Update a Procedure ALTER PROC[EDURE] procedure_name tipo_parametro] [= default] [OUTPUT] [,...,n] AS código t-sql

22 Delete a Procedure DROP PROCEDURE  nome_procedure

23 3. Function 3.1 O que é uma Function? 3.2 Scalar functions - Exemplo
3.3 Inline Table-valued Functions - Exemplo 3.4 Multi-statement Table-Valued Functions - Exemplo

24 3.1 O que é uma Function? SQL Server suporta três tipos de definição de funções: Scalar functions Inline table-valued functions Multi-statement table-valued functions

25 3.2 Scalar functions - Exemplo
CREATE FUNCTION datetime) Returns money AS BEGIN money = sum(Quantidade * Preco) FROM Pedidos_Venda s, Pedidos_Venda_Items si WHERE s.Numero = si.Numero and year(Data) = and month(Data) = and day(Data)= END Use: select ReceitaDiaria(GETDATE())

26 3.3 Inline Table-valued Functions - Exemplo
CREATE FUNCTION MediaPrecoPorItem preco money = 0.0) RETURNS table AS RETURN ( SELECT Descricao_Item, Preco_Item FROM Itens WHERE Preco_Item > @preco) Use: select * from MediaPrecoPorItem (15.00)

27 3.4 Multi-statement Table-Valued Functions - Exemplo
CREATE FUNCTION MediaPrecoPorItem preco money = 0.0) table (Descricao varchar(50) null, Preco money null) AS begin SELECT Descricao_Item, Preco_Item FROM Itens WHERE Preco_Item > @preco return end Use: select * from MediaPrecoPorItem(15.00)

28 4. Trigger 4.1 O que é uma Trigger? 4.2 Sintaxe de criação 4.3 Habilitar/Desabilitar 4.4 Tabelas de valores inseridos e excluídos 4.5 Exemplo 4.6 Outras funções

29 4.1 O que é uma Trigger? Trigger é um procedimento que é executado automaticamente como parte de uma modificação de dados. A trigger é criada em uma tabela e associada com uma ou mais ações ligadas com uma modificação de dados (INSERT, UPDATE, or DELETE). Quando uma das ações para que a trigger está definida ocorre, a trigger é acionada automaticamente Alguns exemplos de uso de triggers: Manutenção de dados duplicados Complexas restrições de coluna Integridade referencial em cascata Padrões complexos Inter-banco de dados de integridade referencial

30 4.2 Sintaxe de criação CREATE TRIGGER nome_trigger
ON <nome_tabela> <{FOR | AFTER}> {[DELETE] [,] [INSERT] [,] [UPDATE]} AS Código SQL [...n]

31 4.3 Habilitar/Desabilitar
Sitaxe para desabilitar Disable trigger <trigger_name> on <table_name> Sitaxe para habilitar Enable trigger <trigger_name> on <table_name>

32 4.4 Deleted and Inserted tables
Quando você cria uma trigger, você tem acesso a duas tabelas temporárias (a tabela de valores apagados e inseridos). Eles são representados como tabelas, mas diferentemente das tabelas de banco de dados. Eles são armazenados na memória não no disco. Quando um insert, update ou delete é executed. Todos os dados serão copiados para essa tabela com a mesma estrutura. Os valores inseridas e excluídas são acessíveis apenas dentro da trigger. Uma vez que a trigger é concluída, essas tabelas não estão mais disponíveis. Inserted Table Deleted Table novo antigo Insert Update Delete

33 4.5 Exemplo CREATE TRIGGER Print_Update ON Invetario_Bicicleta
FOR UPDATE AS PRINT “A tabela invertário de bicicletas foi atualizada"

34 4.6 Outras Funções Ver conteúdo da trigger
sp_helptext <trigger name> Ver número de triggers na a table sp_helptrigger <table name>

35 ?


Carregar ppt "Stored Procedure, Function and Trigger"

Apresentações semelhantes


Anúncios Google