TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

AULA TRIGGERS BANCO DE DADOS

Por:   •  27/3/2016  •  Trabalho acadêmico  •  843 Palavras (4 Páginas)  •  308 Visualizações

Página 1 de 4

TRIGGERS:

 O que é uma Trigger? Também definida como gatilho, é um objeto armazenado no banco de dados que pode ser utilizado para disparar um alerta definido pelo usuário quando alguma regra dentro do banco de dados for inserida, atualizada ou deletada   (INSERT,UPDATE,DELETE) , ou quando há necessidade de modificação em objetos do banco de dados (CREATE, ALTER, DROP, GRANT, REVOKE,etc).

Em quais situações poderíamos utilizar Triggers? Vejamos alguns exemplos:

Quando um determinado dado precisa ser atualizado em função da alteração de outro dado que faz relação a este, pode-se utilizer uma trigger que atualiza automaticamente o dado que depende de outro dado. Ex: O saldo de uma peça no estoque pode ser atualizado quando a mesma for utilizada para determinado finalidade.

Quando há necessidade de de se rastrear todas as modificações feitas num determinado conteúdo importante de uma tabela, então se faz necessário criar um log de todas as manutenções realizadas neste conteúdo. Ex.: Atualização de banco/agencia/conta de um fornecedor; atualização de data de vencimento de uma fatura; trocar preço de um determinado produto, etc. Neste log deve conter pelo menos a chave da linha alterada,

o conteúdo alterado, quem alterou, quando alterou.

Trabalhando com Triggers:

create table cad_cliente

(cod_cli  int not null,

nome_cli  char(30) not null,

bco_cli   int not null,

age_cli   int not null,

conta_cli int not null

primary key (cod_cli)

);        

create table LogCliente

(protocolo    int IDENTITY,

cod_cli_log   int not null,

bco_cli_log   int not null,

age_cli_log   int not null,

conta_cli_log int not null,

data_log      datetime,

usuario       varchar(30),

comando       char(7),

primary key (protocolo)

);

TRIGGER PARA INSERT:

create trigger Trig_LogCliente_INS

on cad_cliente

for insert

as

declare @codigo  int

declare @banco   int

declare @agencia int

declare @conta   int

declare @data    datetime

declare @usuario varchar(30)

declare @comando char(7)='INSERT'

set @codigo =(select cod_cli   from inserted)-- codigo do cliente

set @banco  =(select bco_cli   from inserted)-- banco do cliente

set @agencia=(select age_cli   from inserted)-- agencia do cliente

set @conta  =(select conta_cli from inserted)-- conta do cliente

set @data   =GETDATE()                       -- Data/Hora da manutenção

set @usuario=(select System_User)            -- Usuario da manutenção

insert into LogCliente values (@codigo,@banco,@agencia,@conta,@data,@usuario,@comando) ;

select * from cad_cliente;

select * from logcliente;

[pic 1]

insert cad_cliente values(101,'João',237,669,12345);

insert cad_cliente values(202,'Mara',341,771,67890);

insert cad_cliente values(303,'Luis',479,268,13579); 

insert cad_cliente values(888,'Aldo',888,888,88888);

insert cad_cliente values(999,'Malu',999,999,99999);

select * from cad_cliente;

select * from logcliente;

[pic 2]

TRIGGER PARA DELETE:

create trigger Trig_LogCliente_DEL

...

Baixar como (para membros premium)  txt (5.6 Kb)   pdf (365.9 Kb)   docx (264.7 Kb)  
Continuar por mais 3 páginas »
Disponível apenas no TrabalhosGratuitos.com