Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro ao rodar o inner join

Obtive o seguinte erro ao rodar o codigo, podem me ajudar?

Msg 468, Level 16, State 9, Line 14 Cannot resolve the collation conflict between "Latin1_General_CI_AS" and "SQL_Latin1_General_CP1_CI_AS" in the equal to operation.

1 resposta
solução!

Opa, Eduardo, tudo bem?

Você está fazendo um INNER JOIN com duas tabelas de diferentes tipos de collation.

Collation é a configuração que determina como o SQL Server compara e classifica os caracteres de strings. Uma está com a "Latin1_General_CI_AS" e a outra está usando a "SQL_Latin1_General_CP1_CI_AS".

Para resolver esse problema, você pode forçar a collation de uma das colunas para que corresponda à da outra coluna durante a operação de JOIN. Aqui está um exemplo de como você pode fazer isso:

SELECT 
A.CODIGO AS CODIGO_MINHA_TABELA, A.PRECO_LISTA AS PRECO_MINHA_TABELA, 
B.CODIGO_DO_PRODUTO AS CODIGO_TABELA_APOIO, B.PRECO_DE_LISTA AS PRECO_TABELA_APOIO 
FROM PRODUTOS A 
INNER JOIN SUCOS_FRUTAS.DBO.TABELA_DE_PRODUTOS B 
ON A.CODIGO COLLATE SQL_Latin1_General_CP1_CI_AS = B.CODIGO_DO_PRODUTO;

No código acima eu estou forçando a coluna CODIGO da tabela PRODUTOS para usar a collation "SQL_Latin1_General_CP1_CI_AS" durante a operação de JOIN.

Por favor, tente isso e veja se resolve o seu problema.

Se a dúvida persistir, estou aqui.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.