Carregar apresentação
A apresentação está carregando. Por favor, espere
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
?
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.