Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Преобразовать "??????" в корректный текст  [new]
vehfl
Member

Откуда:
Сообщений: 397
на базу была установлен collation SQL_Latin1_General_CP1_CI_AS
русский текст добавился в виде "??????"
заменили у базы и всех столбцах таблиц SQL_Latin1_General_CP1_CI_AS на Cyrillic_General_CI_AS
новые данные добавляются и отображаются при команде select корректно

можно ли каким либо образом сделать выборку из таблицы так чтобы "??????" отобразились корректно для данных которые были добавлены до смены collation?

что может этому препятствовать?

ПС:
здесь select с русскими буквами на нерусской базе нашел что необходима кодировка unicode
как понять unicode или не-unicode кодировка использовалась при сохранении данных?
29 янв 13, 13:36    [13844056]     Ответить | Цитировать Сообщить модератору
 Re: Преобразовать "??????" в корректный текст  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
vehfl
как понять unicode или не-unicode кодировка использовалась при сохранении данных?
Посмотреть на текст команды добавления.
29 янв 13, 13:38    [13844070]     Ответить | Цитировать Сообщить модератору
 Re: Преобразовать "??????" в корректный текст  [new]
vehfl
Member

Откуда:
Сообщений: 397
select @@version

Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (Intel X86) Jun 17 2011 00:57:23 Copyright (c) Microsoft Corporation Express Edition on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (WOW64)
29 янв 13, 13:38    [13844071]     Ответить | Цитировать Сообщить модератору
 Re: Преобразовать "??????" в корректный текст  [new]
vehfl
Member

Откуда:
Сообщений: 397
Гавриленко Сергей Алексеевич,

те если в команде добавления добавлялись команды в виде
insert into mytable
select N'ааааа'

то значит это unicode, иначе это не-unicode?
29 янв 13, 13:40    [13844094]     Ответить | Цитировать Сообщить модератору
 Re: Преобразовать "??????" в корректный текст  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
vehfl
Гавриленко Сергей Алексеевич,

те если в команде добавления добавлялись команды в виде
insert into mytable
select N'ааааа'

то значит это unicode, иначе это не-unicode?
Типа того. Только поле должно быть юникодным.
29 янв 13, 13:41    [13844100]     Ответить | Цитировать Сообщить модератору
 Re: Преобразовать "??????" в корректный текст  [new]
Гость333
Member

Откуда:
Сообщений: 3683
vehfl
можно ли каким либо образом сделать выборку из таблицы так чтобы "??????" отобразились корректно для данных которые были добавлены до смены collation?

Нельзя, первоначальный русский текст был необратимо преобразован, теперь только апдейтить эти поля корректными значениями.
29 янв 13, 13:46    [13844147]     Ответить | Цитировать Сообщить модератору
 Re: Преобразовать "??????" в корректный текст  [new]
vehfl
Member

Откуда:
Сообщений: 397
Гость333,

даже если поле типа nvarchar?

данные добавлялись в таблицу с помощью
insert into mytable
select N'ааааа'
29 янв 13, 13:56    [13844216]     Ответить | Цитировать Сообщить модератору
 Re: Преобразовать "??????" в корректный текст  [new]
Glory
Member

Откуда:
Сообщений: 104751
vehfl
даже если поле типа nvarchar?

данные добавлялись в таблицу с помощью
insert into mytable
select N'ааааа'

Если поле всегда было nvarchar и данные всегда добавлялись с N' тогда то, что описали в начале со сменой collation, просто не могло произойти.
29 янв 13, 14:00    [13844239]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить