Buscar

SQL - Triggers

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

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/

Continue navegando