Criei um Trigger no Interbase que quando é alterada uma entrada de itens numa tabela chamada Itens_Ent ele atualiza o estoque em uma outra tabela esta chamada Estoque.
Porem quero agora usar este mesmo Trigger só que no SQL Server 2000 e não estou conseguindo converte-lo, se alguém puder me ajudar agradeço...
Segue abaixo o codigo do Trigger
CREATE TRIGGER Altera_Ent_Estoque FOR Itens_Ent
ACTIVE AFTER UPDATE POSITION 0
as
Begin
if (old.ID_Item <> new.ID_Item) then -->Já tentei
varias formas nesta comparação, só que da errro
BEGIN
update ESTOQUE set Qte_Est = Qte_Est + old.Qte
where ID_Item = old.ID_Item;
update ESTOQUE set Qte_Est = Qte_Est - new.Qte
where ID_Item = new.ID_Item;
END
ELSE
if (new.Qte > old.Qte) then
update ESTOQUE set Qte_Est = Qte_Est + (new.Qte - old.Qte) where ID_Item = old.ID_Item;
ELSE
update ESTOQUE set Qte_Est = Qte_Est - (old.Qte - new.Qte) where ID_Item = old.ID_Item;
Pergunta
João Henrique de Queiroz
E ai pessoal ...
Estou com o seguinte problema:
Criei um Trigger no Interbase que quando é alterada uma entrada de itens numa tabela chamada Itens_Ent ele atualiza o estoque em uma outra tabela esta chamada Estoque.
Porem quero agora usar este mesmo Trigger só que no SQL Server 2000 e não estou conseguindo converte-lo, se alguém puder me ajudar agradeço...
Segue abaixo o codigo do Trigger
CREATE TRIGGER Altera_Ent_Estoque FOR Itens_Ent
ACTIVE AFTER UPDATE POSITION 0
as
Begin
if (old.ID_Item <> new.ID_Item) then -->Já tentei
varias formas nesta comparação, só que da errro
BEGIN
update ESTOQUE set Qte_Est = Qte_Est + old.Qte
where ID_Item = old.ID_Item;
update ESTOQUE set Qte_Est = Qte_Est - new.Qte
where ID_Item = new.ID_Item;
END
ELSE
if (new.Qte > old.Qte) then
update ESTOQUE set Qte_Est = Qte_Est + (new.Qte - old.Qte) where ID_Item = old.ID_Item;
ELSE
update ESTOQUE set Qte_Est = Qte_Est - (old.Qte - new.Qte) where ID_Item = old.ID_Item;
end
As tabelas são estas:
Itens_Ent
ID_Ent
ID_Item
Qte
Valor_Unit
Estoque
ID_Item
Qte_Est
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.