Create a Trigger with JOINS

Asked

Viewed 307 times

0

Good afternoon, everyone,

I have two tables:

SELECT [CodigoProduto]
  ,[CodigoDistribuidor]
  ,[Produto]
  ,[ProdutoLimpo]
  ,[NomeMarca]
  ,[StatusProduto]
  ,[ChaveProduto]
  FROM [dbo].[Produto]
  GO


SELECT [CodigoMarca]
  ,[NomeMarca]
  ,[MarcaCorreta]
  ,[GrupoMarca]
  ,[CodigoInterno]
  FROM [dbo].[Marca]
  GO

And I am trying to assemble a Trigger so that when the Product of the product table is filled, it will join the Productolimpo (of characters), with the Code of the Brand table. (Tag name are key in both tables).

Follow what I rode:

CREATE TRIGGER KEY_PRODUTO
ON Produto
FOR INSERT
AS
BEGIN
DECLARE
@Id int,
@Produto nvarchar(50),
@ProdutoLimpo nvarchar(50),
@CodMarca int

SELECT @Id = CodigoProduto, @produto = Produto, @ProdutoLimpo = ProdutoLimpo 
FROM INSERTED 
INNER JOIN Marca on @CodMarca = CodigoInterno

UPDATE Produto SET ChaveProduto = CONCAT(@ProdutoLimpo, '_', @CodMarca ) WHERE CodigoProduto = @Id

END
GO

Not the Bug in the code, but Trigger doesn’t work.

Where should I put Join? I believe it is wrong.

Thank you.

1 answer

0


Your JOIN is incorrect.

Your ON is interacting with two columns of the same table.

Try something like that:

SELECT @Id = INS.CodigoProduto, @produto = INS.Produto, @ProdutoLimpo = INS.ProdutoLimpo, @idMarca = M.CodigoMarca FROM INSERTED INS
LEFT JOIN Marca M on INS.NomeMarca = M.NomeMarca

I didn’t get to run, but the correct syntax of Join would be this.

  • Thank you Pedro, with your reply, I updated my code and ran.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.