GARANTIR DESCONTO

Fórum Gatilho em update do campo! é possivel ? #41558

14/01/2004

0

gostaria de fazer um trigger que assim que o campo x de uma tabela fosse atualizado ele disparasse um gatilho. É possivel ? Se não é como fazer neste caso ?


Midas

Midas

Responder

Posts

14/01/2004

Afarias

set term ^;
create trigger nome_trigger for nome_tabela before (ou after) update as
begin
  if (old.campo_x <> new.campo_x) then
  begin
     {coloque seu processo}
  end
end^




T+


Responder

Gostei + 0

15/01/2004

Midas

Blzzzz muito obrigado AFARIAS. Deu certo. O Trigger. Mas se puder me ajudar com isto. Agradeço...
Tenho uma tabela CONTRATO que terá que ser atualizada os dias de atrazo de determinado contrato, e para cada quantidade de dias determinado, terei uma fase correspondente tabela FASE.
Na tabela FASE tenho dois campos dini (dias iniciais) dfim (dias finais), tenho que analizar a quantidade de dias em atrazo da tabela CONTRATO, e mover o codigo da fase. Ambas estão relacionadas por cod_fase. Como fazer ? Alguma ideia ?
Tentei assim. Mas não deu certo.
set term ! ;
create procedure sp_gerafase
(
empresa integer, situacao integer
)
as
begin
update contrato
set dias_cont= current_date - dtven_cont, cod_fase= (select cod_fase from fase
where cod_emp= :empresa and dias_cont between dini_fase and dfim_fase)
where cod_emp= :empresa and cod_sit= :situacao;
suspend;
end!
set term ; !
Alguem pode me ajudar ?


Responder

Gostei + 0

15/01/2004

Midas

Consegui agora fazer a procedure e ficou assim....
set term ! ;
create procedure sp_gerafase
(
empresa integer, situacao integer
)
as
begin
update contrato
set contrato.dias_cont = current_date-contrato.dtven_cont, contrato.cod_fase =
(select cod_fase from fase where fase.cod_emp= :empresa
and contrato.dias_cont between fase.dini_fase and fase.dfim_fase)
where contrato.cod_emp= :empresa and contrato.cod_sit= :situacao;
suspend;
end!
set term ; !
Valeu pela força novamente AFARIAS...
Que Deus o abençoe, valeu mesmo.


Responder

Gostei + 0

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

Aceitar