Trigger condicional

25/04/2017

0

Olá preciso realizar uma gravacao numa tabela B, quando um registro for inserido na Tabela A, porem só vai acontecer esta gravacao quando um campo numa TABELA C estiver com o Status 1

Exemplo:
Tenho uma tabela chamada ITENSPEDIDO, e tenho uma tabela chamada ENTREGAS, e tenho uma tabela PRODUTOS,

Entao, preciso gravar na tabela ENTREGAS, todos os produtos que tiverem o campo PRODUTOS.ENTREGA = 'S', todos os produtos que forem inseridos na tabela ITENSPEDIDO.

Abaixo a TRIGGER:


CREATE TRIGGER ATUALIZA_ENTREGAS
ON ITENSPEDIDO
AFTER INSERT
AS
BEGIN

DECLARE
@NUMPEDIDO INT,
@FILIAL INT,
@ITEM INT,
@PRODUTO VARCHAR (50),
@PEDIDOTOTAL FLOAT,
@QUANTIDADE FLOAT,
@DATA DATETIME,
@ENTIDADE INT,
@VENDEDOR INT


SELECT @NUMPEDIDO =NUMPEDIDO, @FILIAL = CODFILIAIS, @ITEM = NUMITEM, @PRODUTO = CODPRODUTO,
@QUANTIDADE = PEDIDOQUANTID, @VENDEDOR = CODVENDEDOR FROM INSERTED

INSERT INTO ENTREGAS VALUES (@ITEM, @NUMPEDIDO, @PRODUTO, 0, 0, 0, 0, @QUANTIDADE, 0, 0, NULL, NULL, 0)

END
GO

Da forma que esta acima, esta inserindo todos os produtos, mesmo os que nao sao para entrega.


Weldes
Weldes Goncalves

Weldes Goncalves

Responder

Post mais votado

25/04/2017

Weldes, boa tarde.

No seu caso, você tem que validar se o produto é o produto passiíel de entrega na tabela correspondente

no caso seria assim:

SELECT @NUMPEDIDO =NUMPEDIDO, @FILIAL = CODFILIAIS, @ITEM = NUMITEM, @PRODUTO = CODPRODUTO,
@QUANTIDADE = PEDIDOQUANTID, @VENDEDOR = CODVENDEDOR FROM INSERTED

IF((SELECT ENTREGA FROM PRODUTOS AS P WHERE P.CODPRODUTO = @PRODUTO) = 'S')
BEGIN
INSERT INTO ENTREGAS VALUES (@ITEM, @NUMPEDIDO, @PRODUTO, 0, 0, 0, 0, @QUANTIDADE, 0, 0, NULL, NULL, 0)
END

existem várias formas de você validar esse dados, essa é apenas uma. Vale salientar que você tem que ir na tabela de produtos, como você informou, para validar se o produto é passível de entrega.


espero ter ajudado.

Abraços meu nobre.

Lincon Silva

Lincon Silva
Responder

Mais Posts

26/04/2017

Weldes Goncalves

Excelente, era essa a minha duvida.
Obrigado, valeu!
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar