Gatilho em update do campo! é possivel ?
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
Curtidas 0
Respostas
Afarias
14/01/2004
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+
GOSTEI 0
Midas
14/01/2004
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 ?
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 ?
GOSTEI 0
Midas
14/01/2004
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.
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.
GOSTEI 0