Stored Procedures and Triggers - Presentation Transcript
..:: SQL SERVER ::.. Consulta e Programação de Banco de Dados Stored Procedures& Triggers FTE Gestão de TI - 2009.2
SQL SERVER - Stored Procedure O que é? 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.
SQL SERVER - Stored Procedure Modelo de Acesso ao Banco de Dados sem utilização de Stored Procedures
SQL SERVER - Stored Procedure Modelo de Acesso ao Banco de Dados utilizando Stored Procedures
SQL SERVER - Stored Procedure 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.
SQL SERVER - Stored Procedure Onde localizar asprocedures no Management Studio?
SQL SERVER - Stored Procedure Como criar uma SP? Basta acessar a sua base de dados e criar uma nova query e digitar os comandos responsáveis pela criação e executá-los
SQL SERVER - Stored Procedure Como criar uma SP? Resultado:
SQL SERVER - Stored Procedure Como alterar uma SP? Basta acessar a sua base de dados e criar uma nova query e digitar os comandos responsáveis pela alteração e executá-los
SQL SERVER - Stored Procedure Como alterar uma SP? Resultado da alteração:
SQL SERVER - Stored Procedure Como atalho você pode clicar com o botão direito no nome da procedure e selecionar a opção “Modificar” Será aberta uma janela com os comandos da procedure, em seguida, basta alterar e executar.
SQL SERVER - Stored Procedure Procedures com Parâmetros: A procedure é criada normalmente só que após o seu nome você especifica quais os parâmetros (@parâmetro) e o tipo do mesmo.
SQL SERVER - Stored Procedure Procedures com Parâmetros: Resultado da execução:
SQL SERVER - Stored Procedure Como deletar as procedures criadas? Basta clicar com o botão direito na procedure e selecionar -> Excluir
SQL SERVER - Stored Procedure Como excluir uma SP? 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:
SQL SERVER - Stored Procedure Como executar as procedures ?
SQL SERVER - Stored Procedure Criação de Stored Procedure com a turma: /* #1 Exemplo de SP - Select Simples */ CREATE PROCEDURE SP_tbEmpregado AS BEGIN SELECT * FROM empregado END EXEC SP_tbEmpregado
SQL SERVER - Stored Procedure Criação de Stored Procedure com a turma: /* #2 Exemplo de SP - Select + ORDER BY */ CREATE PROCEDURE SP_ListarEmpregados AS BEGIN SELECT * FROM empregado ORDER BY nome DESC END EXEC SP_ListarEmpregados
SQL SERVER - Stored Procedure Criação de Stored Procedure com a turma: /* #2 Alterar Procedure - Select + ORDER BY */ ALTER PROCEDURE SP_ListarEmpregados AS BEGIN SELECT * FROM empregado ORDER BY cpf ASC END EXEC SP_ListarEmpregados
SQL SERVER - Stored Procedure Criação de Stored Procedure com a turma: /* #3 Exemplo de SP - Select com parâmetros */ CREATE PROCEDURE SP_NomeDepartamento @numero varchar(40) AS BEGIN SELECT nome FROM departamento WHERE numero=@numero END EXEC SP_NomeDepartamento 3
SQL SERVER - Stored Procedure Criação de Stored Procedure com a turma: /* #4 Exemplo de SP - Select múltiplos parâmetros */ CREATE PROCEDURE SP_tbProjeto @numero INT, @depart VARCHAR(30) AS BEGIN SELECT * FROM projeto WHERE numero=@numero AND depart=@depart END EXEC SP_tbProjeto 1, 2
SQL SERVER - Stored Procedure Criação de Stored Procedure com a turma: /* #5 Exemplo de SP - Exemplo Insert múltiplos parâmetros */ CREATE PROCEDURE SP_Add_Empregado @cpf CHAR(11), @nome VARCHAR(40), @salario FLOAT, @dt_nasc DATETIME, @alocacao INT, @supervisor CHAR(11) AS BEGIN INSERT INTO empregado (cpf, nome, salario, dt_nasc, alocacao, supervisor) VALUES (@cpf, @nome, @salario, @dt_nasc, @alocacao, @supervisor) END EXEC SP_Add_Empregado7, 'Lucas Ferreira Costa', 15000, '07/01/1989', 2, null SELECT * FROM empregado
SQL SERVER - Stored Procedure Criação de Stored Procedure com a turma: /* #6 Exemplo de SP - Exemplo Updatemúltiplos parâmetros */ CREATE PROCEDURE SP_AtualizarDepartamento @numero CHAR(11), @nome VARCHAR(40), @gerente CHAR(11), @dt_inicio_ger DATETIME AS BEGIN UPDATE departamento SET nome=@nome, gerente=@gerente, dt_inicio_ger=@dt_inicio_ger WHERE numero=@numero END EXEC SP_AtualizarDepartamento 1, 'Diretoria', null, null SELECT * FROM departamento
SQL SERVER - Stored Procedure Criação de Stored Procedure com a turma: /* #7 Exemplo de SP - Exemplo Delete com parâmetros */ CREATE PROCEDURE SP_DelEmpregado @cpf CHAR(11) AS BEGIN DELETE empregado WHERE cpf=@cpf END EXEC SP_DelEmpregado 7
SQL SERVER - Stored Procedure Criação de Stored Procedure com a turma: /* #8 Exemplo de SP - Procedure com parâmetro de saída */ CREATE PROCEDURE SP_SomaSalario (@SOMA FLOAT OUTPUT) AS BEGIN SELECT @Soma=sum(salario) FROM empregado END DECLARE @Salario_Total FLOAT EXEC SP_SomaSalario @Salario_Total OUTPUT PRINT 'Salário Total: R$'+(CAST(@Salario_Total AS VARCHAR(20))) /* Fim - StoredProcedures com a Turma. */
SQL SERVER - Stored Procedure Quais as vantagens do trabalho com Procedures?
Separação dos códigos SQL da Linguagem de programação
Criação de um repositório unificado dos códigos SQL
Aumento de performance das aplicações
Maior segurança
Diminuição do tráfego da rede
SQL SERVER - Stored Procedure Perguntas ?
SQL SERVER - Trigger O que é? 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:
Criar validações que envolvam pesquisas em mais de uma tabela;
Inserir o conteúdo de uma coluna a partir do conteúdo de outras colunas;
Alterar outras tabelas a partir da inclusão ou alteração de dados da tabela que estamos utilizando.
SQL SERVER - Trigger Triggers - Before e After:
Os gatilhos BEFORE disparam antes das modificações da instrução serem aplicadas, e antes de qualquer restrição ser aplicada.
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.
SQL SERVER - Trigger Quando o gatilho vai ser disparado? O Trigger é disparado por um dos seguintes eventos no banco de dados:
INSERT;
UPDATE;
DELETE.
SQL SERVER - Trigger Itens a definir na criação de uma Trigger?
O nome;
A Tabela para o qual o Trigger irá ser criado;
Quando o Trigger deverá ser disparado;
Os comandos que determinam qual ação o Trigger deverá executar.
SQL SERVER - Trigger Limitações na sua utilização:
Não é possível criar um Trigger para uma visão;
O resultado da execução de um Trigger é retornado para a aplicação que o chamou;
Não podemos usar em um Trigger os seguintes comandos SQL:
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.
SQL SERVER - Trigger Criação de Triggers com a turma: /* #1 Exemplo de TRIGGER - Alerta do comando Insert */ CREATE TRIGGER TR_AlertaInsert ON empregado FOR INSERT AS PRINT 'Empregado cadastrado com sucesso!' insertinto empregado values (8,'Felipe Chagas Maciel', 3500, 08/10/1985, 2, '4'); select * from empregado
SQL SERVER - Trigger Criação de Triggers com a turma: /* #2 Exemplo de TRIGGER - Utilizando a tabela INSERTED */ CREATE TRIGGER TR_TBinserted ON departamento FOR INSERT AS SELECT 'DADOS A SEREM INSERIDOS NA TABELA DEPARTAMENTO:' SELECT * FROM INSERTED GO INSERT INTO departamento VALUES (5,'Manutenção', Null, Null); SELECT * FROM departamento
SQL SERVER - Trigger Criação de Triggers com a turma: /* #3 Exemplo de TRIGGER - Utilizando a tabela DELETED */ CREATE TRIGGER TR_TBdeleted ON departamento FOR DELETE AS SELECT 'DADOS A SEREM APAGADOS DA TABELA DEPARTAMENTO:' SELECT * FROM DELETED GO DELETE FROM departamento WHERE numero=5
SQL SERVER - Trigger Criação de Triggers com a turma: /* #4 Exemplo de TRIGGER - Update mostrando o antes e depois da consulta */ CREATE TRIGGER TR_UpdateDepartamento ON departamento FOR UPDATE AS IF(SELECT COUNT(*) FROM DELETED) <> 0 SELECT * FROM DELETED SELECT * FROM INSERTED GO UPDATE departamento SET nome='Financeiro' WHERE nome='Finanças' select * from departamento
SQL SERVER - Trigger Criação de Triggers com a turma: /* #5 Exemplo de TRIGGER - Alterar uma TRIGGER */ ALTER TRIGGER TR_AlertaInsert ON empregado FOR INSERT AS PRINT 'Funcionário cadastrado com sucesso!' INSERT INTO empregado VALUES (9,'João Britto Neto', 500, 07/01/1991, 1, '2'); SELECT * FROM empregado
SQL SERVER - Trigger Criação de Triggers com a turma: /* #6 Exemplo de TRIGGER - Excluir uma TRIGGER */ DROP TRIGGER TR_AlertaInsert
SQL SERVER Dúvidas ?
SQL SERVER Componentes: Durval Nóvoa Fagner Lima Flávio Matos Luana Rebouças Venceslau Neto
1 comments
Comments 1 - 1 of 1 previous next Post a comment