Fedor34
Дата: 08.06.2011 16:49:30
Добрый день.
Никак не могу понять как работать с этими Collation.
Досталась в наследство база SQL Server 2000, я её перенес благополучно на новый SQL SERVER 2008 R2.
Все текстовые поля в таблицах nvarchar и все хранится в юникоде.
Но у всех стоят разные Collation. От Cyrillic_General_BIN до SQL_Latin1_General_CP1_CI_AS
И регулярно я получаю ошибки вида Collation Conflict.
Что и как нужно сделать, что бы забыть про все эти конфликты?
Нужно всем поставить что-то одно?
Есть ли что-то вида Collation UTF8?
Запутался окончательно :)
Спасибо
Fedor34
Дата: 08.06.2011 17:00:53
Crimean,
Да, в разных таблицах и более того в одной таблицы у разных полей nvarchar разные Collation.
почему так я не знаю. Вот хочу все привести в правильный вид.
Частенько я делаю временные таблицы. И мне надо сравнивать значения в этих таблицах со значениями в обычных таблицах.
Приходиться писать чуть-ли не на каждое поле COLLATE <что-то там>.
Вот от этого и хочу избавиться. Хочу что бы везде было все одинаково.
Зачем мне вообще это Collation - когда я храню все в юникоде? (У меня могут быть разные буквы из разных языков в одном поле).
Fedor34
Дата: 08.06.2011 17:39:08
Ага, вроде понял, поправьте если не так.
Collation надо указывать для любого unicode'ного поля, так как оно влияет на сортировку и прочее.
Тогда что бы мне избавиться от всяких конфликтов, надо все
колонки в базе title_ru, title_en, title_fr, title_de поставить соответствующие Collations
И для временные таблицы создавать указывая collate явно.
Вроде так. Попробую :)