zVlad wrote:On my question:
"...why don't change it to case sensitive? Like we have in DB2."
our SQL Server guy answered:
"...will be performance hit to the database. using UCase(..) will force SQL Server to scan the table rather than utilizing indexes. and more problem with table joins."
zVlad, по этим обрывкам информации непонятно вообще в чём была исходная проблема. Переход на case insensitive, напротив, немного поднимет производительность, так как сравнение символов будет делаться двоичное, а не через таблицы, поэтому те проблемы о которых они пишут - это проблемы проектирования и реализации, а платформа тут не при чём. ucase для joins использовать не нужно, при условии, что DRI сделана правильно. В общем, я так и не понял, в чём исходная проблема и почему при collation по умолчанию не удаётся с ней справиться. Единственное, что может быть помехой - если репликация делается из case-sensitive системы и case-insensitive система обнаруживает нарушения уникальности. Но - это проблема дурного проектирования приложения. Причём, именно того, которое case-sensitive. Во времена SQL Server 4.2 (1994) всё было совсем наоборот - binary sort order, используемый им по умолчанию, был крайне неудобен для большинства обычных случаев. Современные умолчания (dictionary sort order) при наличии гибкости регулировать collation на уровне отдельной колонки - гигантский шаг вперёд.