0% acharam este documento útil (0 voto)
51 visualizações6 páginas

SQL - Triggers

Triggers SQL permitem executar ações automaticamente quando comandos como INSERT, DELETE ou UPDATE são executados em uma tabela. Triggers podem ser usados para validações, restrições de acesso, rotinas de segurança e consistência de dados. Para criar um trigger, é necessário especificar seu nome, a tabela à qual ele se aplica e a ação que o acionará.

Enviado por

Andr4med1
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
51 visualizações6 páginas

SQL - Triggers

Triggers SQL permitem executar ações automaticamente quando comandos como INSERT, DELETE ou UPDATE são executados em uma tabela. Triggers podem ser usados para validações, restrições de acesso, rotinas de segurança e consistência de dados. Para criar um trigger, é necessário especificar seu nome, a tabela à qual ele se aplica e a ação que o acionará.

Enviado por

Andr4med1
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 6

15/08/2022 09:46 SQL - Triggers

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 Trigger é
bloco de comandos Transact-SQL que é automaticamente executado
quando
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

https://www.macoratti.net/sql_trig.htm#:~:text=Um Trigger é bloco de,tabela do banco de dados. 1/6


15/08/2022 09:46 SQL - Triggers

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

https://www.macoratti.net/sql_trig.htm#:~:text=Um Trigger é bloco de,tabela do banco de dados. 2/6


15/08/2022 09:46 SQL - Triggers

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 :

https://www.macoratti.net/sql_trig.htm#:~:text=Um Trigger é bloco de,tabela do banco de dados. 3/6


15/08/2022 09:46 SQL - Triggers

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.

https://www.macoratti.net/sql_trig.htm#:~:text=Um Trigger é bloco de,tabela do banco de dados. 4/6


15/08/2022 09:46 SQL - Triggers

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

https://www.macoratti.net/sql_trig.htm#:~:text=Um Trigger é bloco de,tabela do banco de dados. 5/6


15/08/2022 09:46 SQL - Triggers

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

https://www.macoratti.net/sql_trig.htm#:~:text=Um Trigger é bloco de,tabela do banco de dados. 6/6

Você também pode gostar