disparadores. So cdigos de SQL armazenados dentro do
banco de dados, onde podemos definir um "bloco" SQL para que seja executado automaticamente pelo banco. Ao contrrio dos procedimentos armazenados do sistema, os disparadores no podem ser chamados diretamente e no passam nem aceitam parmetros.
Fornece uma forma alternativa para verificar a integridade
da sua base de dados.
O trigger pode pegar os erros de lgica de negcio no nvel
de banco de dados.
Fornece uma forma alternativa de executar tarefas
agendadas. Com trigger, voc no tem que esperar para executar as tarefas agendadas. Voc pode lidar com as tarefas antes ou aps as alteraes feitas para tabelas de banco de dados.
O trigger muito til quando voc us-lo para auditar as
alteraes de dados em uma tabela do banco de dados.
O trigger pode apenas fornecer validao estendida e no
pode substituir todas as validaes. Algumas validaes simples pode ser feito em nvel de aplicativo.
Triggers SQL executa invisvel da aplicao cliente que se
conecta ao servidor de banco de dados.
O trigger executa todas as atualizaes feitas na tabela,
portanto, ele adiciona a carga de trabalho para o banco de dados e sistema de causa corre mais devagar.
No se pode chamar diretamente uma Trigger com CALL,
como se faz com um Stored e Procedures.
No permitido iniciar ou finalizar transaes em meio
Trigger.
No se pode criar um Trigger para uma tabela temporria
TEMPORARY TABLE.
Uma Trigger ainda no pode ser implementada com a
inteno de devolver para o usurio mensagens de erros.
CREATE TRIGGER [nome do trigger]
ON [nome da tabela] [FOR / AFTER / ] [INSERT/ UPDATE/ DELETE] AS Cdigo (Declarao)
Nome Nome atribudo ao trigger.
ON Define para qual tabela o trigger esta sendo criado.
FOR o valor padro e faz com o que o gatilho seja
disparado junto da ao.
AFTER Faz com que o gatilho seja disparado aps a ao
gerada com sucesso.
INSERT/UPDATE/DELETE: uma ou vrias dessas opes
(separadas por vrgula) devem ser indicadas para informar ao banco qual a ao que disparar o gatilho.
Cdigo Ser declarado a tarefa que trigger ir executar.
SELECT * FROM CAIXA CREATE TRIGGER TGR_VENDAS_AD ON VENDAS FOR DELETE AS BEGIN DECLARE @VALORDECIMAL(10,2), @DATADATETIME SELECT @DATA = DATA, @VALOR = VALOR FROM DELETED UPDATE CAIXA SET SALDO_FINAL = SALDO_FINAL - @VALOR WHERE DATA = @DATA END GO
DELETE FROM VENDAS WHERE CODIGO = 1
GO SELECT * FROM VENDAS SELECT * FROM CAIXA TRUNCATE TABLE VENDAS SELECT * FROM CAIXA; SELECT * FROM VENDAS