Baixe o app para aproveitar ainda mais
Prévia do material em texto
15/08/2022 09:46 SQL - Triggers https://www.macoratti.net/sql_trig.htm#:~:text=Um Trigger é bloco de,tabela do banco de dados. 1/6 SQL - Apresentando Triggers Se até agora você esta acostumado a trabalhar com banco de dados do tipo ISAM ( Dbase , FoxPro, Access , Paradox...); desenvolver uma aplicação para gerenciar os dados neste caso significa criar uma aplicação que faça o controle sobre todo ambiente desde a interface , passando pela manutenção dos dados e as regras de negócios do sistema. É o sistema que deve controlar e tomar as decisões sobre o que fazer em determinadas situações. Assim em um programa para controlar os produtos de uma empresa quando a quantidade de um produto atingir uma certa quantidade o sistema deverá avisar o operador/usuário para providenciar a reposição do mesmo. Ao trabalhar com base de dados Cliente/Servidor como SQL Server , Oracle , Informix , dentre outras, podemos usar um recurso muito poderoso chamado Trigger. Um Um TriggerTrigger é bloco de comandos é bloco de comandos Transact-SQLTransact-SQL que é automaticamente executado quando que é automaticamente executado quando um comando INSERT , DELETE ou UPDATE for executado em uma tabela do banco de dados.um comando INSERT , DELETE ou UPDATE for executado em uma tabela do banco de dados. Os Triggers são usados para realizar tarefas relacionadas com validações , restrições de acesso , rotinas de segurança e consistência de dados ; desta forma estes controles deixam de ser executados pela aplicação e passam a ser executados pelos Triggers em determinadas situações : Mecanismos de validação envolvendo múltiplas tabelas Criação de contéudo de uma coluna derivada de outras colunas da tabela Realizar análise e e atualizações em outras tabelas com base em alterações e/ou incluções da tabela atual A criação de um Trigger envolve duas etapas : 1. Um comando SQL que vai disparar o Trigger ( INSERT , DELETE , UPDATE) 2. A ação que o Trigger vai executar ( Geralmente um bloco de códigos SQL ) Como não poderia deixar de ser , existem certas limitações na utilização de um Trigger : 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. O comando WRITETEXT não ativa um Trigger O comando TRUNCATE TABLE não pode ser reconhecido por um Trigger Não podemos usar em um Trigger os seguintes comandos SQL : ALTER DATABASE , ALTER TRIGGER , ALTER PROCEDURE , ALTER TABLE , ALTER VIEW . CREATE DATABASE , CREATE INDEX , CREATE PROCEDURE, CREATE SCHEMA, CREATE TABLE , DROP DATABASE, DROP TABLE , DROP PROCEDURE, DROP TRIGGER, DROP INDEX, GRANT , LOAD DATABASE, REVOKE, RESTORE DATABASE, TRUNCATE TABLE. Como criar um Trigger 15/08/2022 09:46 SQL - Triggers https://www.macoratti.net/sql_trig.htm#:~:text=Um Trigger é bloco de,tabela do banco de dados. 2/6 Podemos criar um Trigger usando o comando Create Trigger do SQL Server ou através do Enterprise Manager. A Sintaxe de um Trigger é a seguinte: CREATE TRIGGER trigger_name ON { table | view } [ WITH ENCRYPTION ] { { { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] } [ WITH APPEND ] [ NOT FOR REPLICATION ] AS [ { IF UPDATE ( column ) [ { AND | OR } UPDATE ( column ) ] [ ...n ] | IF ( COLUMNS_UPDATED ( ) { bitwise_operator } updated_bitmask ) { comparison_operator } column_bitmask [ ...n ] } ] sql_statement [ ...n ] } } a. ON Table - a tabela para o qual o trigger esta sendo criado b. FOR - deve ser seguido do tipo de comando que acionam o trigger c. AFTER - determina que o trigger somente sera disparado quando todas as rotinas especificadas no comando de disparo forem executadas com sucesso d. INSTEAD OF - Determina que o trigger será executado ao invés do comando de disparo do mesmo. e. [ DELETE ] [INSERT] [UPDATE] - indicam o tipo de ação que deve disparar o trigger. Quando você for criar um Trigger deverá definir : 1. O nome 2. A Tabela para o qual o Trigger irá ser criado 3. Quando o Trigger deverá ser disparado 4. Os comandos que determinam qual ação o Trigger deverá executar Exemplo de Triggers: 1- O trigger abaixo será disparado quando alguém tentar incluir ou alterar dados na tabela Titles. Ele emite uma mensagem ao usuário. ( 50009 é uma mensagem definida para o usuário em sysmessages.) USE pubs IF EXISTS (SELECT name FROM sysobjects WHERE name = 'reminder' AND type = 'TR') DROP TRIGGER reminder GO CREATE TRIGGER reminder 15/08/2022 09:46 SQL - Triggers https://www.macoratti.net/sql_trig.htm#:~:text=Um Trigger é bloco de,tabela do banco de dados. 3/6 ON titles FOR INSERT, UPDATE AS RAISERROR (50009, 16, 10) GO Criando um Trigger com o Enterprise Manager Vamos ver agora como criar um trigger usando o Enterprise Manager : Abra o Enterprise Manager e expanda o item banco de dados e a pasta onde esta a tabela que será aberta. Clique com o botão direito do mouse no nome da tabela onde deseja criar o trigger e selecione no menu pop up a opção New Table Vamos criar a tabela tabela1 conforme a estrutura da figura 1. Na figura 2 temos a tabela já criada. figura 1 figura 2 - Agora clique com o botão direito do mouse sobre a tabela para a qual deseja criar o trigger e no menu selecione : All Tasks e a seguir Manage Triggers, conforme abaixo - A janela Triggers Properties será exibida com a estrutura padrão de um trigger.Agora faça o seguinte : 15/08/2022 09:46 SQL - Triggers https://www.macoratti.net/sql_trig.htm#:~:text=Um Trigger é bloco de,tabela do banco de dados. 4/6 Altere o conteúdo do colchete substituindo TRIGGER NAME pelo nome do trigger que esta criando Na linha seguinte escolha o tipo de ação que irá disparar o trigger (INSERT, UPDATE, DELETE ) Abaixo da palavra AS informe a ação que o trigger irá realizar. - Vamos criar o trigger chamado teste que emitirá um aviso toda vez que um registro for incluído na tabela Tabela1. O desenho do nosso trigger deverá ficar assim: - Verifique a sintaxe clicando em - Check Syntax e a seguir salve o trigger clicando no botão OK. Vamos agora testar se o trigger esta funcionando. Abra o Query Analyzer e selecione o banco de dados para o qual criou o trigger e digite na janela a instrução SQL para incluir um registro . Veja que assim que o registro é incluído a mensagem - "Um registro foi incluído na tabela Tabela1" é exibido indicando que o nosso trigger esta funcionando. 15/08/2022 09:46 SQL - Triggers https://www.macoratti.net/sql_trig.htm#:~:text=Um Trigger é bloco de,tabela do banco de dados. 5/6 Para alterar um trigger usamos o comando ALTER TRIGGER : ALTER TRIGGER nome_trigger Para excluir um trigger usamos o comando DROP TRIGGER : DROP TRIGGER nome_trigger Por enquanto é só isto.. Até a próxima... Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira ! Quer migrar para o VB .NET ? Veja mais sistemas completos para a plataforma .NET no Super DVD .NET , confira... Curso Básico VB .NET - Vídeo Aulas Quer aprender C# ?? Chegou o Super DVD C# com exclusivo material de suporte e vídeo aulas com curso básico sobre C#. Curso C# Basico - Video Aulas Quer aprender os conceitos da Programação Orientada a objetos ? Curso Fundamentos da Programação Orientada a Objetos com VB .NET Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? Curso - Gerando Relatórios com o ReportViewer no VS 2013 - Vídeo http://www.macoratti.net/destaque.htm http://www.macoratti.net/destaques.htm http://www.macoratti.net/superdvd.htm http://www.macoratti.net/curso_vbnet_basico.htm http://www.macoratti.net/superdvdc.htm http://www.macoratti.net/curso_cshp_basico.htm https://www.macoratti.net/16/07/curso_fundamentos_oop.htm http://www.macoratti.net/curso_reportviewer.htm 15/08/2022 09:46 SQL - Triggers https://www.macoratti.net/sql_trig.htm#:~:text=Um Trigger é bloco de,tabela do banco de dados. 6/6 Aulas Referências:Seção VB .NET do Site Macoratti.net Super DVD .NET - A sua porta de entrada na plataforma .NET Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C# Super DVD C# - Recursos de aprendizagens e vídeo aulas para C# Seção C# do site Macoratti.net Seção ASP .NET do site Macoratti .net Curso Básico VB .NET - Vídeo Aulas Curso C# Básico - Vídeo Aulas Curso Fundamentos da Programação Orientada a Objetos com VB .NET Macoratti .net | Facebook macoratti - YouTube Jose C Macoratti (@macorati) | Twitter José Carlos Macoratti http://www.macoratti.net/curso_reportviewer.htm http://www.macoratti.net/pageview.aspx?catid=1 http://www.macoratti.net/superdvd.htm http://www.macoratti.net/Vendas/Produtos.aspx?ID=22 http://www.macoratti.net/superdvdc.htm http://www.macoratti.net/pageview.aspx?catid=18 http://www.macoratti.net/pageview.aspx?catid=3 http://www.macoratti.net/curso_vbnet_basico.htm http://www.macoratti.net/curso_cshp_basico.htm https://www.macoratti.net/16/07/curso_fundamentos_oop.htm https://www.facebook.com/Macoratti.net http://www.youtube.com/user/macoratti https://twitter.com/macorati http://www.macoratti.net/
Compartilhar