Problemas com collatation – SQL Server – Cannot resolve collation conflict for equal to operation.

No SQL Server, um collation pode ser definido no nível da coluna, quando comparamos duas colunas com collations diferentes em uma query obtemos o erro “Cannot resolve collation conflict for equal to operation.”.


SELECT
	[campos]
FROM
	Tabela1
INNER JOIN
	Tabela2
WHERE
	Tabela1.Campo = Tabela1.Campo

Se as colunas Campo da Tabela1 e Tabela2 tiverem collation’s diferentes, isso gerará o erro de conflito de collation’s. Para solucionar esse conflito podemos utilizar o comando COLLATE DATABASE_DEFAULT após os campos que estão sendo comparados.

SELECT
	[campos]
FROM
	Tabela1
INNER JOIN
	Tabela2
WHERE
	Tabela1.Campo COLLATE DATABASE_DEFAULT = Tabela1.Campo COLLATE DATABASE_DEFAULT

O collation pode afetar os seguintes pontos de nossa query:

  1. Clausula Where
  2. Join
  3. Funções
  4. Bases de dados

Até a próxima.

Anúncios