Перенос данных utf-8 из mysql в SQL Server 2005 - PullRequest
2 голосов
/ 17 января 2011

У меня есть живая база данных MySQL с данными UTF-8. Я пытаюсь перенести его на SQL Server 2005.

Все поля таблицы и все данные в формате UTF8.

База данных назначения будет иметь параметры сортировки SQL_Latin1_General_CP1_CI_AS. На данный момент я создал ODBC-соединение с моей базой данных MySQL и сделал следующее:

EXEC master.dbo.sp_addlinkedserver @server = N'MYSQL2', @srvproduct=N'MySQL', @provider=N'MSDASQL', @provstr=N'DRIVER={MySQL ODBC 5.1 Driver}; SERVER=SERVERHOST; DATABASE=mysqldb; USER=mysqluser;PASSWORD=PASSWORD; OPTION=3;charset:utf8;';

select * into mssql.dbo.members from openquery(MySQL, 'select * from mysqldb.members');

сопоставление, которое имеет мой SQL Server, это Greek_CI_AS.

база данных назначения имеет параметры сортировки SQL_Latin1_General_CP1_CI_AS, и я создал еще одну базу данных с параметрами сортировки Greek_CI_AS, просто чтобы убедиться, что это проблема.

Импорт прошел успешно, и все поля таблицы в SQL Server были созданы правильно, НО данные, которые были сохранены, имели кодировку ISO-8859-7 (которая, как я предполагаю, происходит из сопоставления Greek_CI_AS).

это проблема, так как наш текущий сайт имеет страницы UTF-8, и он должен оставаться таким.

Если я использую Firefox и MDDB2, чтобы попытаться получить данные, я получаю запутанные символы. Если я изменяю кодировку View-> на ISO-8859-7, я вижу данные правильно ... но это не решение

Так как же выполнить эту миграцию и иметь правильную кодировку на целевом SQL Server?

любая помощь приветствуется спасибо

1 Ответ

0 голосов
/ 17 марта 2011

Вы должны сообщить нам, какие типы данных вы используете на стороне MS SQL.

Используете ли вы VARCHAR или NVARCHAR?

Вам необходимо использовать NVARCHAR, если вы хотите хранить данные в Unicode.

...