+ All Categories
Home > Documents > Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados...

Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados...

Date post: 17-Apr-2015
Category:
Upload: internet
View: 105 times
Download: 1 times
Share this document with a friend
35
Slide 1 Stored Procedure, Stored Procedure, Function and Trigger Function and Trigger
Transcript
Page 1: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 1

Stored Procedure, Stored Procedure, Function and Function and TriggerTrigger

Page 2: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 2

ObjetivosObjetivos1. Programando no banco de dados2. Stored Procedure 3. Function4. Trigger

Page 3: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 3

1. 1. Programando no banco de Programando no banco de dadosdados

1.1 Variáveis1.2 Controle de fluxo

Page 4: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 4

1.1 1.1 VariáveisVariáveis Declaração de variáveis:

DECLARE @limit intDECLARE @min int, @max int

Atribuindo valor à variável: SET @min = 0, @max = 100

SET @limit = 10 Atribuindo valor à no bloco SQL:

SELECT @price = price FROM titles WHERE  title_id = 'PC2091'

Page 5: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 5

1.2 1.2 ControleControle de de fluxofluxo1.2.1 BEGIN…END1.2.2 IF…ELSE1.2.3 CASE … WHEN1.2.4 RETURN [n]1.2.5 WHILE1.2.6 PRINT

Page 6: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 6

1.2.1 BEGIN…END1.2.1 BEGIN…END Define os blocos de código (início/fim) Outras linguagens de programação:

C#, Java, C: { … }{ … } Pascal, Delphi: BEGIN … ENDBEGIN … END

Page 7: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 7

1.2.2 IF…ELSE1.2.2 IF…ELSE Condicional

IF Condição  IF Condição  Código T-SQL | bloco de código Código T-SQL | bloco de código

[ELSE [ELSE  Código T-SQL | bloco de código ] Código T-SQL | bloco de código ]

Exemplo:IF (SELECT vendasAno FROM livros WHERE livro_id = 'PC

1035') > 5000 PRINT ‘Vendas no ano são que R$5000,00

para PC1035.‘

Page 8: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 8

1.2.3 CASE … WHEN1.2.3 CASE … WHENCASE input_expression

WHEN  when_expression  THEN result_expression  [WHEN when_expression  THEN result_expression…n] [ELSE else_result_expression ]

ENDExemplo: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çãoC#, Java: Switch … Case Switch … Case ; VB: Select … CaseSelect … Case

Page 9: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

1.2.4 RETURN [n]1.2.4 RETURN [n] Pode ser usado para Trigger, Procedure ou

Function e returna um valor.

Page 10: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 10

1.2.5 WHILE1.2.5 WHILE Repete o bloco de código enquanto a condição

for verdadeiraWHILE Condição WHILE Condição 

Código SQL | bloco de códicoCódigo SQL | bloco de códico[BREAK] Código SQL | bloco de código [BREAK] Código SQL | bloco de código [CONTINUE][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

ENDSELECT MAX(comissao) AS “Comissão Máxima" FROM vendas

Page 11: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 11

1.2.6 PRINT1.2.6 PRINT Mostra mensagem no SQL Query Analyze

(Console)

PRINT stringPRINT string Outras linguagens de programação:

Java: System.out.print C#, VB.NET: Console.WriteLine

Page 12: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 12

2. Stored Procedure2. Stored Procedure2.1 O que é uma Stored Procedure?2.2 Stored Procedure vs. comando SQL2.3 Criar, alterar e apagar uma procedure

Page 13: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 13

2.1 O que é uma Store 2.1 O que é uma Store Procedure?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.

Page 14: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 14

2.2 Stored Procedure vs. Comando 2.2 Stored Procedure vs. Comando SQLSQL

Primeira execução- Verifica sintaxe- Compila- Executa- Returna dadosSegunda execução- Verifica sintaxe- Compila- Executa- Returna dados

Primeira execução- Execute- Returna dados

Segunda execução- Executa- Returna dados

SQL Statement Stored ProcedureCriação- Verifica sintaxe- Compila

Page 15: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 15

2.3 Criar, alterar e apagar uma 2.3 Criar, alterar e apagar uma procedureprocedure

2.3.1 Criar uma Procedure2.3.2 Alterar uma Procedure2.3.3 Apagar uma Procedure

Page 16: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 16

2.3.1 Create a Procedure2.3.1 Create a Procedure2.3.1.1 Sintaxe2.3.1.2 Exemplo 1 (sem parametros)2.3.1.3 Exemplo 2 (com parametros)2.3.1.4 Exemplo 3 (usando RETURN)

Page 17: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 17

2.3.1.1 Sintaxe2.3.1.1 SintaxeCREATE PROC[EDURE] nome_procedure

[ @nome_parametro tipo_parametro] [= default] OUTPUT][,...,n]

AS CódigoT-SQL (s)

Page 18: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 18

2.3.1.2 Exemplo 1 (sem 2.3.1.2 Exemplo 1 (sem parametros)parametros)

CREATE PROC Membros_DepartamentoAS

SELECT Dep_Nome, COUNT(Emp_ID) NumeroMembrosFROM Departamentos D, Empregados EWHERE D.Dep_ID = E.Dep_IDGROUP BY Dep_Nome

Run ProcedureExecute Membros_Departamento

Page 19: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 19

2.3.1.3 Exemplo 2 (com 2.3.1.3 Exemplo 2 (com parametros)parametros)

CREATE PROC Membros_Departamento @DeptNome varchar(50)

ASSELECT Dep_Nome, COUNT(Emp_ID) NumeroEmpregadosFROM Departamentos D, Empregados EWHERE D.Dep_ID = E.Dep_ID and Dep_Nome = @DeptNomeGROUP BY Dep_Nome

Run ProcedureExecute Membros_Departamento ‘Contabilidade’

Page 20: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 20

2.3.1.4 Exemplo 3 (Using 2.3.1.4 Exemplo 3 (Using RETURN )RETURN )

CREATE PROC GROUPLEADER_MEMBERS @Cod_Emp varchar(10) = null

ASIF @ Cod_Emp is nullBEGIN

PRINT ‘Por favor entre com o código do empregado!'

RETURNENDSELECT * FROM EmpregadosWHERE Cod_Emp = @ Cod_EmpORDER BY Nome

Page 21: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 21

2.3.2 Update a Procedure2.3.2 Update a ProcedureALTER PROC[EDURE] procedure_name

[ @nome_paramtro tipo_parametro] [= default] [OUTPUT]

[,...,n]AS 

código t-sql

Page 22: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 22

2.3.3 Delete a Procedure2.3.3 Delete a Procedure DROP PROCEDURE  nome_procedure

Page 23: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 23

3. 3. FunctionFunction3.1 O que é uma Function?3.2 Scalar functions - Exemplo3.3 Inline Table-valued Functions - Exemplo3.4 Multi-statement Table-Valued Functions -

Exemplo

Page 24: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 24

3.1 O que é uma Function?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

Page 25: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 25

3.2 Scalar functions - Exemplo3.2 Scalar functions - ExemploCREATE FUNCTION ReceitaDiaria(@data datetime) Returns

moneyASBEGIN

DECLARE @total moneySELECT @total = sum(Quantidade * Preco)FROM Pedidos_Venda s, Pedidos_Venda_Items siWHERE s.Numero = si.Numero and year(Data) = year(@data)

and month(Data) = month(@data) and day(Data)= day(@Date)RETURN @total

END

Use:select ReceitaDiaria(GETDATE())

Page 26: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 26

3.3 Inline Table-valued Functions 3.3 Inline Table-valued Functions - Exemplo- 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)

Page 27: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 27

3.4 Multi-statement Table-Valued Functions - 3.4 Multi-statement Table-Valued Functions - ExemploExemplo

CREATE FUNCTION MediaPrecoPorItem (@ preco money = 0.0) RETURNS @table table (Descricao varchar(50) null, Preco money null) AS begin insert @table SELECT Descricao_Item, Preco_Item

FROM Itens WHERE Preco_Item > @preco

return end

Use:select * from MediaPrecoPorItem(15.00)

Page 28: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 28

4. 4. TriggerTrigger4.1 O que é uma Trigger?4.2 Sintaxe de criação4.3 Habilitar/Desabilitar4.4 Tabelas de valores inseridos e excluídos 4.5 Exemplo4.6 Outras funções

Page 29: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 29

4.1 O que é uma Trigger?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

Page 30: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 30

4.2 Sintaxe de criação4.2 Sintaxe de criaçãoCREATE TRIGGER nome_trigger

ON <nome_tabela><{FOR | AFTER}>{[DELETE] [,] [INSERT] [,] [UPDATE]}

AS Código SQL [...n]

Page 31: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 31

4.3 Habilitar/Desabilitar4.3 Habilitar/Desabilitar Sitaxe para desabilitar

Disable trigger <trigger_name> on <table_name>

Sitaxe para habilitarEnable trigger <trigger_name> on <table_name>

Page 32: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 32

4.4 Deleted and Inserted tables4.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 novo antigo antigo

Insert Update Delete

Page 33: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 33

4.5 Exemplo4.5 ExemploCREATE TRIGGER Print_Update

ON Invetario_BicicletaFOR UPDATE

ASPRINT “A tabela invertário de bicicletas

foi atualizada"

Page 34: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 34

4.6 Outras Funções4.6 Outras Funções Ver conteúdo da trigger

sp_helptext <trigger name>

Ver número de triggers na a tablesp_helptrigger <table name>

Page 35: Slide 1 Stored Procedure, Function and Trigger. Slide 2 Objetivos 1.Programando no banco de dados 2.Stored Procedure 3.Function 4.Trigger.

Slide 35


Recommended