Fórum Porque que este TRIGGER esta errado? #254663

15/10/2004

0

Estou tentando fazer este trigger funcionar:
SET TERM ^;
CREATE TRIGGER ATUALIZA_ESTOQUE FOR TAB_ENTRAPRODUTO
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
  UPDATE TAB_ESTOQUE
   SET QUANTIDADE =  QUANTIDADE + NEW.QUANTIDADE
   WHERE COD_PRODUTO = NEW.COD_PRODUTO;
END ^
SET TERM ;^


mas sempre me mostra este erro.
[color=red:ab9cbe7c4b]
Dynamic SQL Error SQL error code = -206 Column unknown NEW.QUANTIDADE Statement: CREATE TRIGGER ATUALIZA_ESTOQUE FOR TAB_ENTRAPRODUTO ACTIVE BEFORE INSERT POSITION 0 AS BEGIN UPDATE TAB_ESTOQUE SET QUANTIDADE = QUANTIDADE + NEW.QUANTIDADE WHERE COD_PRODUTO = NEW.COD_PRODUTO; END
[/color:ab9cbe7c4b]
Será que alguém consegue identificar este erro.
Peninha.


Peninha

Peninha

Responder

Posts

15/10/2004

Gandalf.nho

Existe um campo QUANTIDADE na tabela associada a trigger?


Responder

Gostei + 0

15/10/2004

Peninha

Bem, na tabela Entra_produto tem um campo ´QUANTIDADE_ENTRA´ e na tabela estoque tem um campo ´QUANTIDADE´.
Pode me ajudar.


Responder

Gostei + 0

15/10/2004

Vinicius2k

Colega,
Bem, na tabela Entra_produto tem um campo ´QUANTIDADE_ENTRA´ e na tabela estoque tem um campo ´QUANTIDADE´. Pode me ajudar.

Diante disto, o código correto seria :´
CREATE TRIGGER ATUALIZA_ESTOQUE FOR TAB_ENTRAPRODUTO 
ACTIVE BEFORE INSERT POSITION 0 
AS 
BEGIN 
  UPDATE TAB_ESTOQUE 
   SET QUANTIDADE =  QUANTIDADE + NEW.QUANTIDADE_ENTRA
   WHERE COD_PRODUTO = NEW.COD_PRODUTO; 
END ^


o NEW está se refererindo ao registro da tabela à qual a trigger está associada, no caso, TAB_ENTRAPRODUTO.

T+


Responder

Gostei + 0

15/10/2004

Peninha

Valeu Vinicius, muito obrigado amigo, não só por me mostrar o erro, mas por ter me explicado muito bem.
Muito obrigado.
Peninha.


Responder

Gostei + 0

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

Aceitar