Fórum Trigger/Procedure #46130

18/08/2004

0

O que são Trigger ??? Para que serve?? Quando devo usá-la ???

Qual a diferença de usar Trigger e Procedure em um banco ???
Quando devo usar a Procedure ???

Aguardo um retorno


Rogério


Rogeranalista

Rogeranalista

Responder

Posts

18/08/2004

Fsflorencio

Trigger = Gatilho: É disparado automaticamente quando é executado um evento do tipo inserir, alterar ou excluir em determinada tabela. A tabela e o evento são definidos no próprio trigger.

No trigger deve haver algum comando sql.

Exemplo de trigger:

CREATE TRIGGER TD_ACERTOS_ESTOQUE FOR ACERTOS ACTIVE
AFTER DELETE POSITION 0
AS
DECLARE VARIABLE numrows INTEGER;
BEGIN
delete from ITENS_ACERTOS
where
ITENS_ACERTOS.COD_EMPRESA = OLD.COD_EMPRESA and
ITENS_ACERTOS.COD_ACERTO = OLD.COD_ACERTO;
END

Vc pode executar procedures de dentro de um trigger.

Procedures são procedimentos (comandos) armazenados:

Ex de procedure:

CREATE PROCEDURE SP_COTACAO (
OPERACAO SMALLINT,
COD_COTACAO INTEGER,
COD_EMPRESA INTEGER,
DT_COTACAO DATE)
AS
BEGIN
IF (OPERACAO = 1) THEN
BEGIN
INSERT INTO COTACOES (COD_COTACAO, COD_EMPRESA, DT_COTACAO )
VALUES (:COD_COTACAO, :COD_EMPRESA, :DT_COTACAO);
END
IF (OPERACAO = 2) THEN
BEGIN
UPDATE COTACOES SET DT_COTACAO = :DT_COTACAO
WHERE COD_COTACAO = :COD_COTACAO AND COD_EMPRESA = :COD_EMPRESA;
END
END

Quando a gente executa esta procedure ela insere ou altera o registro de uma tabela:

Executando uma procedure para inserir um registro:

EXECUTE PROCEDURE SP_COTACAO ( 1, 99, 1, ´2004/18/08´ );

Quanto a quando usar trigger ou procedure, vc é quem vai decidir.

Vc pode olhar no guia de referência de SQL que há aqui no site para tirar maiores dúvidas.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar