Ответ 1
Дело в том, что, хотя в базе данных есть своя сортировка, каждая таблица и каждый столбец могут иметь собственную сортировку. Если он не указан, он принимает по умолчанию его родительский объект, но может быть другим.
При изменении сортировки базы данных она будет новой по умолчанию для всех новых таблиц и столбцов, но она не изменит сортировку существующих объектов внутри базы данных. Вы должны пойти и изменить вручную сортировку каждой таблицы и столбца.
К счастью, в Интернете есть скрипты, которые могут выполнять эту работу. Я не буду рекомендовать, так как я их не пробовал, но здесь несколько ссылок:
http://www.codeproject.com/Articles/302405/The-Easy-way-of-changing-Collation-of-all-Database
Обновить сортировку всех полей базы данных на лету
http://www.sqlservercentral.com/Forums/Topic820675-146-1.aspx
Если вам нужно иметь различную сортировку по двум объектам или не можете изменять сортировки, вы все равно можете JOIN
между ними с помощью команды COLLATE
и выберите сортировку, которую хотите для соединения.
SELECT * FROM A JOIN B ON A.Text = B.Text COLLATE Latin1_General_CI_AS
или используя сортировку базы данных по умолчанию:
SELECT * FROM A JOIN B ON A.Text = B.Text COLLATE DATABASE_DEFAULT