DBAtlas · Atlas für Datenbankbetrieb

468: Cannot resolve the collation conflict

SQL Server

Was bedeutet das?

Bei einer Operation (JOIN, UNION, WHERE-Vergleich oder Gleichheit) trafen zwei String-Ausdrücke mit unterschiedlichen Collations aufeinander, und SQL Server konnte nicht auflösen, welche Collation anzuwenden ist. Die Operation wurde wegen der Mehrdeutigkeit abgebrochen.

Ursache

Die verglichenen Spalten sind mit unterschiedlichen Collations definiert; am häufigsten, wenn die Datenbank-Collation von der Server-/tempdb-Collation abweicht oder wenn Tabellen in Datenbanken mit unterschiedlichen Collations verknüpft werden. Das Verknüpfen temporärer Tabellen (tempdb-Collation) mit permanenten Tabellen ist ein klassischer Auslöser.

Lösung

Gib im Vergleich eine explizite Collation an: ... WHERE a.col = b.col COLLATE DATABASE_DEFAULT (oder einen konkreten Collation-Namen). Verwende COLLATE DATABASE_DEFAULT beim Anlegen von Spalten temporärer Tabellen. Gleiche als dauerhafte Lösung die betroffenen Spalten/Datenbanken an eine einheitliche Collation an. Treten Abweichungen zu tempdb häufig auf, ist DATABASE_DEFAULT die praktischste Lösung.

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank