Страницы

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

среда, 12 февраля 2020 г.

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

#sql_server


Проблема следующая. Создаю базу   

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
)


Ну и собственно заполняю её (текстовые поля - кириллицой). Как итог, всё то что на
кириллице в таком виде ?????
Подскажите, в чем может быть проблема ? Где-то с кодировкой накосячил? Да вроде универсальная.
    


Ответы

Ответ 1



Строковые литералы 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.

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

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