Проблемы с регистром и сопоставлением, когда для моей базы данных SQL Server установлено значение Latin1_General_100_CI_AI - PullRequest
5 голосов
/ 25 января 2011

Для моей базы данных SQL Server 2008 установлено сопоставление Latin1_General_100_CI_AI, но когда я запрашиваю базу данных с помощью Management Studio, она все еще чувствительна к акценту.Что мне не хватает?

Кроме того, я получаю следующее сообщение при соединении двух таблиц на nvarchar.Обе таблицы также находятся в одном и том же сопоставлении.

Невозможно разрешить конфликт сопоставления между "Latin1_General_100_CI_AI" и "Latin1_General_CI_AS" в операции равных.с благодарностью.

Ответы [ 2 ]

5 голосов
/ 25 января 2011

Попробуйте преобразовать одно из полей в сопоставление другого поля:

SELECT  *
FROM    as_table
JOIN    ai_table
ON      ai_field = as_field COLLATE Latin1_General_100_CI_AI

или

SELECT  *
FROM    ai_table
JOIN    as_table
ON      as_field = ai_field COLLATE Latin1_General_100_CI_AS

Обратите внимание, что приведение поля делает предикат невозможным для индекса по этому полю.

1 голос
/ 29 января 2011

Как только вы уже создали объекты в базе данных, простое изменение параметров сортировки не изменит существующие объекты.Вы можете убедиться в этом, щелкнув правой кнопкой мыши по таблицам и составив сценарий - в них будет много заметок о сопоставлениях полей varchar.Если вы хотите, чтобы объекты менялись, вам нужно их воссоздать.

...