DBAtlas · Атлас эксплуатации баз данных

468: Cannot resolve the collation conflict

SQL Server

Что это значит?

В операции (JOIN, UNION, сравнение в WHERE или проверка равенства) встретились два строковых выражения с разными правилами сортировки (collation), и SQL Server не смог определить, какой collation применить. Операция отменена из-за неоднозначности.

Почему возникает?

Сравниваемые столбцы определены с разными collation; чаще всего встречается, когда collation базы данных отличается от collation сервера/tempdb или когда соединяются таблицы из баз данных с разными collation. Классический триггер — соединение временных таблиц (collation tempdb) с постоянными таблицами.

Как исправить

Укажите явный collation в сравнении: ... WHERE a.col = b.col COLLATE DATABASE_DEFAULT (или конкретное имя collation). Используйте COLLATE DATABASE_DEFAULT при создании столбцов временных таблиц. Для постоянного решения приведите затронутые столбцы/базы данных к единому согласованному collation. Если несоответствия с tempdb часты, DATABASE_DEFAULT — наиболее практичное решение.

Открыть в DBAtlas →

Ещё по этой СУБД