DBAtlas · Atlas de operações de banco de dados

468: Cannot resolve the collation conflict

SQL Server

O que significa?

Em uma operação (JOIN, UNION, comparação no WHERE ou igualdade), duas expressões de string com collations diferentes se encontraram e o SQL Server não conseguiu decidir qual collation aplicar. A operação foi cancelada devido à ambiguidade.

Por que acontece?

As colunas comparadas são definidas com collations diferentes; ocorre com mais frequência quando a collation do banco difere da collation do servidor/tempdb, ou quando são unidas tabelas de bancos com collations diferentes. Unir tabelas temporárias (collation do tempdb) a tabelas permanentes é um gatilho clássico.

Como resolver

Especifique uma collation explícita na comparação: ... WHERE a.col = b.col COLLATE DATABASE_DEFAULT (ou um nome de collation concreto). Use COLLATE DATABASE_DEFAULT ao criar colunas de tabelas temporárias. Como solução permanente, alinhe as colunas/bancos afetados a uma única collation consistente. Se as divergências com o tempdb forem frequentes, DATABASE_DEFAULT é a correção mais prática.

Abrir no DBAtlas →

Mais entradas deste banco