Проблема следующая. Создаю базу
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.
Комментариев нет:
Отправить комментарий