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

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s