Your SlideShare is downloading. ×
0
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Stored Procedures and Triggers
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Stored Procedures and Triggers

31,300

Published on

Apresentação sobre as Stored Procedures e Triggers no SGBD SQL Server 2008, passo-a-passo. Teoria X Prática.

Apresentação sobre as Stored Procedures e Triggers no SGBD SQL Server 2008, passo-a-passo. Teoria X Prática.

Published in: Technology
7 Comments
30 Likes
Statistics
Notes
No Downloads
Views
Total Views
31,300
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
7
Likes
30
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. ..:: SQL SERVER ::..<br />Consulta e Programação de Banco de Dados<br />Stored Procedures&amp; Triggers<br />FTE<br />Gestão de TI - 2009.2<br />
  • 2. SQL SERVER - Stored Procedure<br />O que é?<br />Os procedimentos armazenados são uma coleção de comandos SQL, compilados e armazenados no Banco de Dados. Geralmente eles representam tarefas repetitivas e aceitam parâmetros de entrada e saída. Eles podem retornar uma coleção de dados e sempre retorna um valor indicando sua execução ou erro. Os procedimentos armazenados melhoram o tráfego na rede, melhora a performance das aplicações, criam mecanismos de segurança e melhoram a manutenção dos códigos SQLe das aplicações que acessam o banco de dados.<br />
  • 3. SQL SERVER - Stored Procedure<br />Modelo de Acesso ao Banco de Dados sem utilização de Stored Procedures<br />
  • 4. SQL SERVER - Stored Procedure<br />Modelo de Acesso ao Banco de Dados utilizando Stored Procedures<br />
  • 5. SQL SERVER - Stored Procedure<br />Ao executar a procedure pela 1ª vez ela é compilada e a cada execução seus resultados são colocados em cache, o cache é semelhante a uma memória que guarda as últimas operações do BD, caso a procedure seja executada novamente ela pega o resultado do cache diminuindo o esforço do BD e aumentando a velocidade de acesso.<br />
  • 6. SQL SERVER - Stored Procedure<br />Onde localizar asprocedures no Management Studio?<br />
  • 7. SQL SERVER - Stored Procedure<br />Como criar uma SP?<br />Basta acessar a sua base de dados e criar uma nova query e digitar os comandos responsáveis pela criação e executá-los<br />
  • 8. SQL SERVER - Stored Procedure<br />Como criar uma SP?<br />Resultado:<br />
  • 9. SQL SERVER - Stored Procedure<br />Como alterar uma SP?<br />Basta acessar a sua base de dados e criar uma nova query e digitar os comandos responsáveis pela alteração e executá-los<br />
  • 10. SQL SERVER - Stored Procedure<br />Como alterar uma SP?<br />Resultado da alteração:<br />
  • 11. SQL SERVER - Stored Procedure<br />Como atalho você pode clicar com o botão direito no nome da procedure e selecionar a opção “Modificar”<br />Será aberta uma janela com os comandos da procedure, em seguida, basta alterar e executar.<br />
  • 12. SQL SERVER - Stored Procedure<br />Procedures com Parâmetros:<br />A procedure é criada normalmente só que após o seu nome você especifica quais os parâmetros (@parâmetro) e o tipo do mesmo.<br />
  • 13. SQL SERVER - Stored Procedure<br />Procedures com Parâmetros:<br />Resultado da execução:<br />
  • 14. SQL SERVER - Stored Procedure<br />Como deletar as procedures criadas?<br />Basta clicar com o botão direito na procedure e selecionar -&amp;gt; Excluir<br />
  • 15. SQL SERVER - Stored Procedure<br />Como excluir uma SP?<br />Basta acessar a sua base de dados e criar uma nova query e digitar os comandos responsáveis para exclusão de dados na tabela e executá-los:<br />
  • 16. SQL SERVER - Stored Procedure<br />Como executar as procedures ?<br />
  • 17. SQL SERVER - Stored Procedure<br />Criação de Stored Procedure com a turma:<br />/* #1 Exemplo de SP - Select Simples */<br />CREATE PROCEDURE SP_tbEmpregado<br />AS<br />BEGIN<br />SELECT * FROM empregado<br />END<br />EXEC SP_tbEmpregado<br />
  • 18. SQL SERVER - Stored Procedure<br />Criação de Stored Procedure com a turma:<br />/* #2 Exemplo de SP - Select + ORDER BY */<br />CREATE PROCEDURE SP_ListarEmpregados<br />AS<br />BEGIN<br />SELECT * FROM empregado<br />ORDER BY nome DESC<br />END<br />EXEC SP_ListarEmpregados<br />
  • 19. SQL SERVER - Stored Procedure<br />Criação de Stored Procedure com a turma:<br />/* #2 Alterar Procedure - Select + ORDER BY */<br />ALTER PROCEDURE SP_ListarEmpregados<br />AS<br />BEGIN<br />SELECT * FROM empregado<br />ORDER BY cpf ASC<br />END<br />EXEC SP_ListarEmpregados<br />
  • 20. SQL SERVER - Stored Procedure<br />Criação de Stored Procedure com a turma:<br />/* #3 Exemplo de SP - Select com parâmetros */<br />CREATE PROCEDURE SP_NomeDepartamento<br />@numero varchar(40)<br />AS<br />BEGIN<br />SELECT nome FROM departamento WHERE numero=@numero<br />END<br />EXEC SP_NomeDepartamento 3<br />
  • 21. SQL SERVER - Stored Procedure<br />Criação de Stored Procedure com a turma:<br />/* #4 Exemplo de SP - Select múltiplos parâmetros */<br />CREATE PROCEDURE SP_tbProjeto<br />@numero INT,<br />@depart VARCHAR(30)<br />AS<br />BEGIN<br />SELECT * FROM projeto WHERE numero=@numero AND depart=@depart<br />END<br />EXEC SP_tbProjeto 1, 2<br />
  • 22. SQL SERVER - Stored Procedure<br />Criação de Stored Procedure com a turma:<br />/* #5 Exemplo de SP - Exemplo Insert múltiplos parâmetros */<br />CREATE PROCEDURE SP_Add_Empregado<br />@cpf CHAR(11),<br />@nome VARCHAR(40),<br />@salario FLOAT,<br />@dt_nasc DATETIME,<br />@alocacao INT,<br />@supervisor CHAR(11)<br />AS<br />BEGIN<br />INSERT INTO empregado (cpf, nome, salario, dt_nasc, alocacao, supervisor)<br />VALUES (@cpf, @nome, @salario, @dt_nasc, @alocacao, @supervisor)<br />END<br />EXEC SP_Add_Empregado7, &amp;apos;Lucas Ferreira Costa&amp;apos;, 15000, &amp;apos;07/01/1989&amp;apos;, 2, null<br />SELECT * <br />FROM empregado<br />
  • 23. SQL SERVER - Stored Procedure<br />Criação de Stored Procedure com a turma:<br />/* #6 Exemplo de SP - Exemplo Updatemúltiplos parâmetros */<br />CREATE PROCEDURE SP_AtualizarDepartamento<br />@numero CHAR(11),<br />@nome VARCHAR(40),<br />@gerente CHAR(11),<br />@dt_inicio_ger DATETIME<br />AS<br />BEGIN<br />UPDATE departamento SET nome=@nome, gerente=@gerente, dt_inicio_ger=@dt_inicio_ger WHERE numero=@numero<br />END<br />EXEC SP_AtualizarDepartamento 1, &amp;apos;Diretoria&amp;apos;, null, null<br />SELECT * <br />FROM departamento<br />
  • 24. SQL SERVER - Stored Procedure<br />Criação de Stored Procedure com a turma:<br />/* #7 Exemplo de SP - Exemplo Delete com parâmetros */<br />CREATE PROCEDURE SP_DelEmpregado<br />@cpf CHAR(11)<br />AS<br />BEGIN<br />DELETE empregado WHERE cpf=@cpf<br />END<br />EXEC SP_DelEmpregado 7<br />
  • 25. SQL SERVER - Stored Procedure<br />Criação de Stored Procedure com a turma:<br />/* #8 Exemplo de SP - Procedure com parâmetro de saída */<br />CREATE PROCEDURE SP_SomaSalario (@SOMA FLOAT OUTPUT)<br />AS<br />BEGIN<br />SELECT @Soma=sum(salario) FROM empregado<br />END<br />DECLARE @Salario_Total FLOAT<br />EXEC SP_SomaSalario @Salario_Total OUTPUT<br />PRINT &amp;apos;Salário Total: R$&amp;apos;+(CAST(@Salario_Total AS VARCHAR(20)))<br />/* Fim - StoredProcedures com a Turma. */<br />
  • 26. SQL SERVER - Stored Procedure<br />Quais as vantagens do trabalho com Procedures?<br /><ul><li> Separação dos códigos SQL da Linguagem de programação
  • 27. Criação de um repositório unificado dos códigos SQL
  • 28. Aumento de performance das aplicações
  • 29. Maior segurança
  • 30. Diminuição do tráfego da rede</li></li></ul><li>SQL SERVER - Stored Procedure<br />Perguntas ?<br />
  • 31. SQL SERVER - Trigger<br />O que é?<br />A Trigger(ou gatilho) é um objeto que é automaticamente executado assim que efetuado um INSERT, DELETE ou UPDATE na tabela. Entre as vantagens da utilização da Trigger, podemos destacar:<br /><ul><li> Criar validações que envolvam pesquisas em mais de uma tabela;
  • 32. Inserir o conteúdo de uma coluna a partir do conteúdo de outras colunas;
  • 33. Alterar outras tabelas a partir da inclusão ou alteração de dados da tabela que estamos utilizando.</li></li></ul><li>SQL SERVER - Trigger<br />Triggers - Before e After:<br /><ul><li> Os gatilhos BEFORE disparam antes das modificações da instrução serem aplicadas, e antes de qualquer restrição ser aplicada.
  • 34. Os gatilhos AFTER disparam após todas as restrições terem sido satisfeitas, e após todas as alterações terem sido aplicadas à tabela de destino.</li></li></ul><li>SQL SERVER - Trigger<br />Quando o gatilho vai ser disparado?<br />O Trigger é disparado por um dos seguintes eventos no banco de dados:<br /><ul><li>INSERT;
  • 35. UPDATE;
  • 36. DELETE.</li></li></ul><li>SQL SERVER - Trigger<br />Itens a definir na criação de uma Trigger?<br /><ul><li> O nome;
  • 37. A Tabela para o qual o Trigger irá ser criado;
  • 38. Quando o Trigger deverá ser disparado;
  • 39. Os comandos que determinam qual ação o Trigger deverá executar.</li></li></ul><li>SQL SERVER - Trigger<br />Limitações na sua utilização:<br /><ul><li>Não é possível criar um Trigger para uma visão;
  • 40. O resultado da execução de um Trigger é retornado para a aplicação que o chamou;
  • 41. Não podemos usar em um Trigger os seguintes comandos SQL:</li></ul>ALTER DATABASE , ALTER TRIGGER, ALTER PROCEDURE, ALTER TABLE, CREATE DATABASE, CREATE INDEX, CREATE PROCEDURE, CREATE SCHEMA, CREATE TABLE, DROP DATABASE, DROP TABLE, DROP PROCEDURE, DROP TRIGGER, DROP INDEX, GRANT, RESTORE DATABASE. Entre outras.<br />
  • 42. SQL SERVER - Trigger<br />Criação de Triggers com a turma:<br />/* #1 Exemplo de TRIGGER - Alerta do comando Insert */<br />CREATE TRIGGER TR_AlertaInsert ON empregado<br />FOR INSERT<br />AS <br />PRINT &amp;apos;Empregado cadastrado com sucesso!&amp;apos;<br />insertinto empregado values (8,&amp;apos;Felipe Chagas Maciel&amp;apos;, 3500, 08/10/1985, 2, &amp;apos;4&amp;apos;);<br />select * from empregado<br />
  • 43. SQL SERVER - Trigger<br />Criação de Triggers com a turma:<br />/* #2 Exemplo de TRIGGER - Utilizando a tabela INSERTED */<br />CREATE TRIGGER TR_TBinserted ON departamento<br />FOR INSERT<br />AS<br />SELECT &amp;apos;DADOS A SEREM INSERIDOS NA TABELA DEPARTAMENTO:&amp;apos;<br />SELECT * FROM INSERTED<br />GO<br />INSERT INTO departamento VALUES (5,&amp;apos;Manutenção&amp;apos;, Null, Null);<br />SELECT * FROM departamento<br />
  • 44. SQL SERVER - Trigger<br />Criação de Triggers com a turma:<br />/* #3 Exemplo de TRIGGER - Utilizando a tabela DELETED */<br />CREATE TRIGGER TR_TBdeleted ON departamento<br />FOR DELETE<br />AS<br />SELECT &amp;apos;DADOS A SEREM APAGADOS DA TABELA DEPARTAMENTO:&amp;apos;<br />SELECT * FROM DELETED<br />GO<br />DELETE <br />FROM departamento<br />WHERE numero=5<br />
  • 45. SQL SERVER - Trigger<br />Criação de Triggers com a turma:<br />/* #4 Exemplo de TRIGGER - Update mostrando o antes e depois da consulta */<br />CREATE TRIGGER TR_UpdateDepartamento ON departamento<br />FOR UPDATE<br />AS<br />IF(SELECT COUNT(*) FROM DELETED) &amp;lt;&amp;gt; 0<br />SELECT * FROM DELETED<br />SELECT * FROM INSERTED<br />GO<br />UPDATE departamento<br />SET nome=&amp;apos;Financeiro&amp;apos;<br />WHERE nome=&amp;apos;Finanças&amp;apos;<br />select * from departamento<br />
  • 46. SQL SERVER - Trigger<br />Criação de Triggers com a turma:<br />/* #5 Exemplo de TRIGGER - Alterar uma TRIGGER */<br />ALTER TRIGGER TR_AlertaInsert ON empregado<br />FOR INSERT<br />AS <br />PRINT &amp;apos;Funcionário cadastrado com sucesso!&amp;apos;<br />INSERT INTO empregado VALUES (9,&amp;apos;João Britto Neto&amp;apos;, 500, 07/01/1991, 1, &amp;apos;2&amp;apos;);<br />SELECT * FROM empregado<br />
  • 47. SQL SERVER - Trigger<br />Criação de Triggers com a turma:<br />/* #6 Exemplo de TRIGGER - Excluir uma TRIGGER */<br />DROP TRIGGER TR_AlertaInsert<br />
  • 48. SQL SERVER<br />Dúvidas ?<br />
  • 49. SQL SERVER<br />Componentes:<br />Durval Nóvoa<br />Fagner Lima <br />Flávio Matos <br />Luana Rebouças <br />Venceslau Neto<br />

×