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
Qual a diferença de usar Trigger e Procedure em um banco ???
Quando devo usar a Procedure ???
Aguardo um retorno
Rogério
Rogeranalista
Curtir tópico
+ 0
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.
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
Clique aqui para fazer login e interagir na Comunidade :)