Daniel Paulo dptsalvador@hotmail.com SQL Server 2016 Módulo II Daniel Paulo dptsalvador@hotmail.com.

Slides:



Advertisements
Apresentações semelhantes
Banco de Dados Prof. Antonio.
Advertisements

Curso: Banco de Dados I Análise de Sistemas PUC Campinas
Triggers Renata Viegas.
Prof.: Bruno Rafael de Oliveira Rodrigues
Banco de Dados SQL TRIGGERS (Gatilhos)
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone:
Visões Marilde Santos.
Maurício Edgar Stivanello
Restrições de Integridade
Usuário de SGBD Álvaro Vinícius de Souza Coêlho
Design Patterns / Acesso ao banco de dados (java.sql)
(Linguagem de Consulta Estruturada)
1 15/4/ :36 FMU – 1. Semestre – Tecnologia – Analise e Desenvolvimento de Sistemas Professor: Eduardo Silvestri Aluno:Clóvis de Oliveira- RA
Triggers (Gatilhos) Professor Esp. Diego André Sant’Ana
SCC Bancos de Dados e Suas Aplicações
Banco de Dados I I Comandos SQL
Controle de Concorrência
7P/SI – 2010/01 Prof. Carlos Alberto Seixas. Agenda Visão Geral sobre os Conceitos e Implementação sobre SGBs MySQL Revisão das Práticas Práticas 1 e.
Daniel Paulo Atualizando e excluindo Dados Comando UPDATE – Altera registros da tabela UPDATE tabela SET nome_coluna = expressao.
Daniel Paulo Introdução O tempo de resposta de um sistema é determinado pelo tempo que ele leva para retornar aos usuários às.
Daniel Paulo Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados.
Daniel Paulo SQL Server 2014 Módulo II Daniel Paulo
Daniel Paulo SQL Server 2014 Módulo II Daniel Paulo
Fundamentos de Banco de Dados Prof. André Cypriano M. Costa
Aula 13 - Triggers. Triggers no SGBD Postgres  Os Triggers (Gatilhos) são funções preparadas para serem disparadas no caso de alguma alteração ocorrer.
Kelyn Schenatto. Definição Linguagem de Consulta Estruturada (Structured Query Language); Desenvolvida inicialmente nos anos 70 nos laboratórios da IBM.
Desenvolvimento de Aplicações Web com Java - Servlets e JSP Autor: Juliano Marcos Martins.
Gerador de aplicativos Oracle PL/SQL WEB baseado na estrutura das tabelas do banco de dados Oracle Wagner da Silva Orientando Prof. Alexander Roberto Valdameri.
Linguagem de Programação de Banco de Dados George Azevedo da Silva José Antônio da Cunha IFRN.
Transações George Azevedo da Silva José Antônio da Cunha.
Supervisão e Redes Industriais Tutorial E3 Elipse Capítulo 14 ARMAZENAMENTO DE DADOS Felipe Domeni, Gabriel Martin, Leandro Gomes Rafael Benoliel, Tiago.
Banco de Dados José Antônio da Cunha CEFET – RN.
Banco de Dados Prof. MSc Wagner Siqueira Cavalcante
Prof. MS Virgílio fries muller
Persistência de dados e padrão DAO
Tema 1: Conceitos fundamentais de banco de dados
SQLite SQLite é um banco de dados Open Source. Ele suporta recursos de banco de dados relacionais padrão, como sintaxe SQL, transações, etc. SQLite suporta.
Administração de Banco de Dados
O que é um banco de dados? Antes precisamos entender o que são dados.
Audit Trail Logix 16/Agosto/2017.
Access 2010 Microsoft. Access 2010  O Microsoft Access é um Sistema de Gestão de Base de Sados (SGBD) relacional em ambiente gráfico (Windows), que possibilita.
Banco de Dados CURSOR.
Daniel Paulo SQL Server 2016 Módulo II Daniel Paulo
Banco de Dados para Redes– Aula 02 Prof. Me. Ronnison Reges Vidal
BANCO DE DADOS Araújo Lima Out / 2017 Araújo.
Views no MySql Visões de uma ou mais tabelas
Daniel Paulo SQL Server 2016 Módulo II Daniel Paulo
Daniel Paulo SQL Server 2016 Módulo II Daniel Paulo
BANCO DE DADOS Araújo Lima Outubro / 2017 Araújo.
Daniel Paulo SQL Server 2016 Módulo II Daniel Paulo
Daniel Paulo SQL Server 2016 Módulo II Daniel Paulo
Daniel Paulo SQL Server 2016 Módulo II Daniel Paulo
Modelagem de Banco de Dados através do ERwin
Aplicativos para Internet Aula 13
Aplicativos para Internet Aula 12
SQL 2ª Parte: Definição e Manipulação de Dados
Banco de Dados Prof. MSc Wagner Siqueira Cavalcante
PROF. ARNALDO MARTINS HIDALGO JUNIOR PROF. LEANDRO LANZA
Curso básico de PHP. 1 Vantagens: Gratuito Multiplataforma Estável Rapidez Comunicação.
MS-SQL Server Structure Query Language
PL/SQL Triggers e Procedures
Prática O-R Fernando Fonseca.
Módulo III Capítulo 2: SQLite
Aula Prática Objeto-Relacional Monitoria GDI
Treinamento SQL Server Tarefas do dia a dia de um DBA
Prática - BD Distribuído
Gerenciamento de backup e dumps do MySQL
BANCO DE DADOS.
Comandos DDL (Data Definition Language) - 2
Modelagem de Banco de Dados
Transcrição da apresentação:

Daniel Paulo dptsalvador@hotmail.com SQL Server 2016 Módulo II Daniel Paulo dptsalvador@hotmail.com

Capítulo 10 – Triggers Triggers O SQL Server oferece dois mecanismos primários para reforçar as regras de negócio e a integridade dos dados: CONSTRAINTS e TRIGGERS. Um trigger, também chamado de gatilho, é um tipo especial de STORED PROCEDURE que automaticamente é disparado quando há um evento de linguagem.

Capítulo 10 – Triggers Tipos Trigger de DDL - Finalidade de disparar stored procedures para responder comandos DDL (ALTER, DROP e CREATE) Trigger de DML - Executa comando a partir dos eventos de INSERT, UPDATE ou DELETE Trigger de Logon - executado quando um usuário inicia uma sessão

Capítulo 10 – Triggers O acionamento do trigger ocorre de forma automática Não envia ou recebe parâmetros Podem gerar erros com o comando RAISERROR Tanto o Trigger como o comando que o acionou são tratados como sendo uma única transação Esta transação pode ser desfeita em qualquer lugar de dentro da trigger (ROLLBACK)

Capítulo 10 – Triggers Comandos que não podem ser executados por trigger: CREATE DROP DISK (TODOS) GRANT LOAD REVOKE ALTER TABLE ALTER DATABASE TRUNCATE TABLE UPDATE STATISTICS RECONFIGURE RESTORE DATABASE RESTORE LOG SELECT INTO

Capítulo 10 – Triggers Diferenças entre triggers e constraints CONSTRAINT - São proativas, o SQL Server verifica as regras antes da inserção / alteração dos dados TRIGGER - São reativas, o SQL executa o comando e depois verifica se existiu algum erro (caso ocorra realiza um ROLLBACK)

Capítulo 10 – Triggers TRIGGER DML Um trigger DML é uma ação programada para executar quando um evento DML ocorre em um servidor de banco de dados. Podem afetar outras tabelas e pode incluir instruções TSQL complexas Podem prevenir operações incorretas ou mal intencionadas de INSERT, UPDATE ou DELETE e fazer restrições mais complexas do que as definidas na CONSTRAINT CHECK

Capítulo 10 – Triggers Podem referenciar outras colunas, ao contrário da constraint CHECK Podem avaliar o estado de uma tabela antes e depois de uma modificação dos dados e realizar ações com base nas diferenças entre o estado anterior e posterior à modificação dos dados Com resposta à uma instrução de modificação de dados, os trigger localizadas em uma mesma tabela permitem que diferentes ações sejam realizadas

Capítulo 10 – Triggers Categorias da trigger DML TRIGGER AFTER - Especificados somente em tabelas, as trigger AFTER são executadas após a conclusão das ações de INSERT, UPDATE ou DELETE Trigger INSTEAD OF - Também conhecidas como BEFORE, são executadas independentemente da transação. São aplicadas também as VIEWS TRIGGER CLR – Triggers que são construídas com métodos escritos na plataforma .NET

Capítulo 10 – Triggers Observações Um trigger normal na verdade é um trigger AFTER. Este tipo de trigger acontece junto com a transação que disparou o trigger seja ela um INSERT, UPDATE ou um DELETE. Dentro de um trigger AFTER você pode cancelar a ação utilizando um ROLLBACK. Você somente consegue criar triggers AFTER em tabelas.

Capítulo 10 – Triggers Tabelas INSERTED e DELETED O SQL cria em memória uma ou duas tabela para armazenamento dos dados com os quais a trigger vai trabalhar. Instrução INSERTED DELETED INSERT X DELETE UPDATE Novo Antigo

Capítulo 10 – Triggers TRIGGER INSTEAD OF Este trigger é responsável por determinar que o trigger DML seja executado ao invés do comando SQL ser disparado. Com isso, as ações realizadas por comandos disparados são sobrescritos. Apenas 1 trigger por tabela ou view Não pode ser utilizada com comandos DELETE e UPDATE em tabelas que possuem relacionamento referencial que determina ações em cascata ON DELETE e ON UPDATE.  

Capítulo 10 – Triggers TRIGGER DDL Executam Stored Procedures em resposta a um evento DDL Prevenir certas alterações no esquema do banco de dados, ou determinar que algo ocorra no banco de dados conforme a alteração sofrida por este esquema Registrar alterações ou eventos realizados no esquema do banco de dados Iniciar, parar, pausar, modificar e repetir os resultados de trace

Capítulo 10 – Triggers Regular operações de banco de dados Operam nas instruções CREATE, ALTER e DROP Os trigger DDL são disparados somente após uma instrução TSQL ter sido executada São ferramentas importantes para registrar as ações administrativas do sistema Não existe equivalência entre as operações dos Trigger DDL e dos Trigger INSTEAD OF Podemos utilizar a instrução ROLLBACK para interromper as transação atual Uma única operação DDL pode executar  múltiplos trigger DDL

Capítulo 10 – Triggers Visualizando trigger Select name from sys.triggers Object explorer no SSMS Definição da trigger sys.sql_modules

Capítulo 10 – Triggers Trigger aninhadas Qualquer trigger pode conter uma instrução UPDATE, INSERT  ou DELETE que afete uma tabela. Os trigger são aninhados quando um trigger executa uma ação que inicia outra trigger. Por padrão, a opção de configuração de um trigger aninhado é ON no nível do servidor Aninhamento de até 32 triggers  

Capítulo 10 – Triggers Habilitando e desabilitando trigger aninhados - Ajustar o aninhamento de triggers para a opção nested triggers da stored procedure sp_configure para 0 EXEC sp_configure 'Nested Triggers' , 0 - desabilita EXEC sp_configure 'Nested Triggers' , 1 - Habilita ou Object Explorer pág 357

Capítulo 10 – Triggers Triggers recursivas: é um trigger que executa uma ação que faz com que o mesmo trigger seja disparado novamente, direta ou indiretamente. Recursão direta: Ocorre quando um trigger é disparado e executa uma ação na mesma tabela que ela seja disparado novamente Recursão indireta: Quando um trigger é disparado e executada uma ação que faz com que outro trigger seja disparado na mesma tabela ou em outra e, consequentemente, este trigger causa alteração na tabela original. Essa ação acaba disparando novamente o trigger original.

Capítulo 10 – Triggers Alterando TRIGGER - ALTER TRIGGER Desabilitar um TRIGGER - DISABLE TRIGGER Habilitar um TRIGGER - ENABLE TRIGGER Apagar um TRIGGER - DROP TRIGGER

Capítulo 10 – Triggers Considerações O SQL verifica primeiramente as Constraints e depois as TRIGGERS Tabelas temporárias ou VIEWS não podem possuir TRIGGERS Quando trabalhamos com tabelas que possuem chaves estrangeiras com uma ação DELETE/UPDATE em cascata, os TRIGGERS dos comandos INSTEAD OF DELETE/UPDATE não podem ser definidos

Capítulo 10 – Triggers Os resultados obtidos após o TRIGGER ter sido disparado são retornados à aplicação que o chamou Para não retornar dados utilizar o comando SET NOCOUNT O recurso de retornar dados a partir de TRIGGERS será excluído em uma versão futura O comando TRUNCATE TABLE não ativa TRIGGERS

Capítulo 10 – Triggers Laboratório página 362 à 365