Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

vAlfonso

Trigger

Recommended Posts

Galera, estou com dificuldades em criar uma trigger, faz pouco tempo que comecei a trabalhar com SQL Server por isso a dificuldade.

 

Andei pesquisando nos fóruns e não achei alguma coisa que resolvesse meu problema.

 

Bom eu estou criando um sistema que controla o estoque dos produtos de mais de uma empresa.

 

Tenho a tabela de PRODUTOS e PRODUTOSEMPRESAS

 

Em cada uma delas eu tenho o campo QUANTIDADEESTOQUE.

 

Gostaria de saber como faço uma trigger assim.

 

Quando eu desse o UPDATE na quantidade estoque em PRODUTOSEMPRESAS a quantidade estoque dos PRODUTOS somasse o que eu tenho de estoque onde PRODUTOS.CODIGOPRODUTO = PRODUTOSEMPRESAS.CODIGOPRODUTO.

Mas não consigo fazer o update porque não sei qual CODIGOPRODUTO foi alterado. Gostaria de saber se tem como fazer com que eu saiba qual código foi alterado.

 

Assim eu faria uma trigger mais ou menos assim:

 

CREATE TRIGGER ALTERA_QUANTIDADE_PRODUTO

ON dbo.PRODUTOSEMPRESAS

AFTER UPDATE

AS

BEGIN

UPDATE dbo.PRODUTOS SET PRODUTOS.QUANTIDADEESTOQUE = SUM(SELECT QUANTIDADEESTOQUE FROM dbo.PRODUTOSEMPRESAS WHERE PRODUTOSEMPRESAS.CODIGOPRODUTO = PRODUTOS.CODIGOPRODUTO)

END

GO

 

 

Obrigado pela ajuda desde já.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu cara, consegui ver como funciona a trigger e pegar os valores do inserted e deleted. Dai ficou assim...

 

CREATE TRIGGER ALTERA_QUANTIDADE_PRODUTO
ON dbo.PRODUTOSEMPRESAS
AFTER UPDATE
AS
BEGIN
if(UPDATE(QUANTIDADEESTOQUE))
UPDATE dbo.PRODUTOS SET QUANTIDADEESTOQUE = (QUANTIDADEESTOQUE - (SELECT d.QUANTIDADEESTOQUE FROM DELETED AS d)) + (SELECT i.QUANTIDADEESTOQUE FROM INSERTED AS i)
END
GO

 

Obrigado pela força, abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.