Criar Trigger Firebird

Firebird

26/08/2007

Galera estou tentando criar uma trigger para atualizar o campo estoque de um produto antes da inserção na tabela itens_lista, meu sql tah desta forma:

create trigger estoque for itens_lista
active
before insert
position 0 as
begin
update produtos set pro_qtde_est=(pro_qtde_est-new.ite_qtde)
where pro_cod=new.pro_cod
end

bom quando for inserido um novo registro na tabela itens_lista, ele vai pegar o campo que contem a quantidade vendida, que é representada pelo campo ite_qtde, e subtrair do campo quantidade da tabela produto que esta representada pelo campo pro_qtde_est.

bom na hora de criar aparece o seguinte erro.

ISC ERROR CODE:335544569

ISC ERROR MESSAGE:
Dynamic SQL Error
SQL error code = -104
Token unknown - line 8, column 1
end

pelo o que eu entendi ele não reconhece o end da trigger, tem algo errado no corpo da minha trigger? Valeu!!


Shakall

Shakall

Curtidas 0

Respostas

T3r3son

T3r3son

26/08/2007

Vi sua mensagem de passagem, então posso estar enganado, mas vc verificou que tem um ; no final da instrução SQL?


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

26/08/2007

acho que é isso mesmo. falta o ; ao final do comando sql


GOSTEI 0
Shakall

Shakall

26/08/2007

create trigger estoque for itens_lista
active
before insert
position 0 as
begin
update produtos set pro_qtde_est=(pro_qtde_est-new.ite_qtde)
where pro_cod=new.pro_cod
end;

mesmo erro galera, adicionei o ; no final e não resolveu!


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

26/08/2007

colega, o ; é ao final da instrução sql

create trigger estoque for itens_lista
active
before insert
position 0 as
begin
update produtos set pro_qtde_est=(pro_qtde_est-new.ite_qtde)
where pro_cod=new.pro_cod; <-- aqui ó...
end


GOSTEI 0
Shakall

Shakall

26/08/2007

sim jah tentei tb e não resolvou, mas descobri o problema eu tinha que ter inserido antes e depois do create o SET TERM ^ ; agora esta fucnionando pergeitamente valeu!!!


GOSTEI 0
POSTAR