Страницы

Поиск по вопросам

понедельник, 22 апреля 2019 г.

MSSQL не понимает кириллицу

Проблема следующая. Создаю базу
create database MyTestDB on primary (name = MyTestDB, filename = 'd:\MyTestDB.mdf', size = 12MB, maxsize = 20MB, filegrowth = 2MB ) LOG ON (name = MyTestDB_Log, filename = 'd:\\MyTestDB_Log.ldf', size = 2MB, maxsize = 12MB, filegrowth = 1MB) COLLATE Latin1_General_CI_AI;
Затем создаю табличку
CREATE TABLE Students( ID int IDENTITY(1,1) NOT NULL CONSTRAINT PK_Students PRIMARY KEY, Name nvarchar(30) NOT NULL )
Ну и собственно заполняю её (текстовые поля - кириллицой). Как итог, всё то что на кириллице в таком виде ????? Подскажите, в чем может быть проблема ? Где-то с кодировкой накосячил? Да вроде универсальная.


Ответ

Строковые литералы Unicode - nvarchar - нужно задавать с префиксом N:
N'Иванов'
Без префикса строка будет преобразована с использованием кодовой страницы базы, и часть символов скорее всего будет испорчена:
Prefix Unicode character string constants with the letter N. Without the N prefix, the string is converted to the default code page of the database. This default code page may not recognize certain characters.

Комментариев нет:

Отправить комментарий