2013-07-21 2 views
1

Сводка tempdb - Latin1_General_100_CI_AI. Сопоставление базы данных также Latin1_General_100_CI_AI. Тем не менее, следующий SQL заявление:Сопоставление конфликта с временным столом

SELECT * 
FROM ##CitiesMapping AS cm 
INNER JOIN Cities ON cm.CityName=Cities.Name 

возвращается:

Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Latin1_General_100_CI_AI" in the equal to operation. 

сервера по умолчанию параметры сортировки также Latin1_General_100_CI_AI

+0

Какую версию SQL Server вы используете? Можете ли вы дважды проверить настройку по умолчанию для экземпляра SQL Server, который вы используете? – Serg

+0

@Serg 'Latin1_General_100_CI_AI' - обновленный ответ –

+1

взгляните на сортировку столбца' Cities.Name', поскольку сортировка одного столбца может отличаться от общей сортировки таблицы и базы данных – Serg

ответ

2

Проверьте таблицы, связанные, а также:

SELECT name, collation_name, OBJECT_NAME(object_id) 
FROM sys.columns 
WHERE OBJECT_NAME(object_id) IN ('Cities') 
2

Это возможно что сортировка задана по-разному для одного столбца. Запрос от Стюарта покажет вам это. Если они разные параметры сортировки можно указать параметры сортировки используются по обе стороны от сравнения, как это:

SELECT * 
    FROM ##CitiesMapping AS cm 
INNER JOIN Cities 
    ON cm.CityName COLLATE DATABASE_DEFAULT = Cities.Name COLLATE DATABASE_DEFAULT; 

Я надеюсь, что это помогает вам.

Смежные вопросы