| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MS SQL Server > Принимает ли MS SQL Server русский язык? |
| Автор: Lobsang 18.5.2003, 14:15 |
| Почему при вставке в таблицу БД (MS SQL Server 2000) слов на русском используя Query Analyzer или написанную программу - получаем кучу знаков ? вместо букв. Но при вставке из Server Enterpriise Manager - русские слова сохраняются в нормальном виде. Что-то здесь с настройками Виндов. Может кто знает. Видел подобный вопрос - там ответом было мол "что-то в кодировке", может скажете что нужно изменить что бы кодировка была нормальной? Win2000 Server Русский - задан как регион. Кодировка - KOIR-8 |
| Автор: Lobsang 19.5.2003, 06:23 |
| Все он понимает. Это у кого-то руки не из того места растут Все дело в настройках COLLATE - где задаются параметры языка БД при ее создании. Список всех Колэйшенов можно получить SELECT * FROM ::fn_helpcollations() |
| Автор: lynx20005 12.3.2005, 15:11 |
| В свое время столкнулся с такой проблемой: Да, на самом деле, всё заключалось в свойстве COLLATE. Выход: выполнить такой SQL-запрос: ALTER DATABASE <имя ДБ> COLLATE Cyrillic_General_CI_AS и всё работает. |
| Автор: adamant 24.4.2006, 05:32 |
| А у меня не заработало! отправляю ALTER DATABASE <имя ДБ> COLLATE Cyrillic_General_CI_AS потом делаю форму при нажатии go в таблицу вставляеться русский текст, потом загружаю этот текст а там всё авно иероглифы... что делать? Заработало только криво, например не правельно даёт эти символы: ё, щ, ы, ю... Как именно от этого избавиться? |
| Автор: ALKS 24.4.2006, 11:45 | ||
не правда. COLLATE на базе данных это COLLATE по-умолчанию. они применяться при создании новых таблиц если в запросе на создание явно не указан COLLATE для столбца. Если таблица уже создана то тот факт что изменялся COLLATE по-умолчанию на базе для уже существующих таблиц ничего не изменит. чтобы сменить COLLATE нужно либо пересоздать все таблицы либо сделать ALTER с нужным COLLATE у нужных вам столбцов типа char/varchar. В последнем случае вы по-сношаетесь по-полной потому, что например если два столбца двух таблиц участвующие в Foreign Key то они должны иметь один и тотже COLLATE. В примведенном примере придеться уничтожать констреинт, менять COLLATE у столбцов и потом создавать констреин снова. Вообщем гемор ещё тот. |