Поддержка многоязычных данных в SQL Server - PullRequest
6 голосов
/ 07 января 2010

Как настроить СУБД SQL Server 2005, чтобы вы могли хранить данные на разных языках?

Моя точная проблема заключается в следующем: в SQL Server Management Studio я пишу оператор вставки, содержащий немецкие умлауты. Текст успешно сохранен, но чтение того же значения приводит к тексту без умлаута.

Учтите, что я должен поддерживать 4 языка: английский, немецкий, греческий и русский (я не хочу думать, с чем столкнется русский текст)

СУБД теперь настроена с греческим сопоставлением (для поддержки греческого).

Это вызывает какие-либо проблемы ??

Любые намеки ??

Ответы [ 2 ]

7 голосов
/ 07 января 2010

Вам необходимо использовать тип данных nvarchar для строк (http://msdn.microsoft.com/en-us/library/ms186939.aspx), а также все символы Unicode должны предшествовать N (http://support.microsoft.com/kb/239530).

При работе со строковыми константами Юникода в SQL Server все строки Юникода должны начинаться с заглавной буквы N, как описано в электронной документации по SQL Server «Использование данных Юникода». Префикс «N» обозначает Национальный язык в стандарте SQL-92 и должен быть в верхнем регистре. Если вы не добавите префикс строки Unicode к N, SQL Server преобразует ее в кодовую страницу, отличную от Unicode, в текущей базе данных, прежде чем использовать строку.

2 голосов
/ 07 января 2010

вы используете nvarchar тип (а не varchar)? будет рекомендоваться, если у вас есть несколько языков в одном столбце. это позволит вам правильно хранить и получать.

Конечно, сервер SQL может поддерживать только один тип сортировки для определенного столбца, даже если этот столбец используется для хранения строк на нескольких языках, поэтому следует учитывать ...

...